Bonjour, j'ai un projet a faire pour mon cours d'algorithmique auquel j'y comprend absolument rien. Y'aurait-il pas une âme charitable pour me faire une partie qui est de créé des fonction avec des vecteurs?
Voici la partie en question :
1 2 3 4 5 6 7 8 9 10
| struct vec {
double x;
double y;
};
struct vecset {
struct vec *data;
size_t size;
size_t capacity;
}; |
Question 2.1 Donner le code d’une fonction qui crée un ensemble de points
vide.
void vecset_create(struct vecset *self);
Question 2.2 Donner le code d’une fonction qui détruit un ensemble de
points.
void vecset_destroy(struct vecset *self);
Question 2.3 Donner le code d’une fonction qui ajoute un point à un ensemble
de points.
void vecset_add(struct vecset *self, struct vec p);
On considère une fonction de comparaison de points avec un contexte qui
renvoie un entier strictement négatif si p1 est «plus petit» que p2, un entier
strictement positif si p1 est «plus grand» que p2 et 0 si p1 est «égal» à p2.
1 2
| typedef int (*comp_func_t)(const struct vec *p1,
const struct vec *p2, const void *ctx); |
Question 2.4 Donner le code d’une fonction qui renvoie le maximum d’un
ensemble de points suivant une fonction de comparaison donnée.
1 2
| const struct vec *vecset_max(const struct vecset *self,
comp_func_t func, const void *ctx); |
Question 2.5 Donner le code d’une fonction qui renvoie le minimum d’un
ensemble de points suivant une fonction de comparaison donnée.
1 2
| const struct vec *vecset_min(const struct vecset *self,
comp_func_t func, const void *ctx); |
Question 2.6 Donner le code d’une fonction qui trie l’ensemble de points
suivant la fonction de comparaison donnée.
1 2
| void vecset_sort(struct vecset *self, comp_func_t func,
const void *ctx); |
—
On va maintenant voir le tableau dynamique comme une pile, avec le haut
de la pile à la fin du tableau.
Question 2.7 Donner le code d’une fonction qui empile un élément.
void vecset_push(struct vecset *self, struct vec p);
Question 2.8 Donner le code d’une fonction qui dépile un élément.
void vecset_pop(struct vecset *self);
Question 2.9 Donner le code d’une fonction qui renvoie le premier élément
de la pile.
const struct vec *vecset_top(const struct vecset *self);
Question 2.10 Donner le code d’une fonction qui renvoie le second élément
de la pile.
const struct vec *vecset_second(const struct vecset *self);
Partager