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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
void vecset_create(struct vecset *self);
Question 2.2 Donner le code d’une fonction qui détruit un ensemble de
points.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
void vecset_destroy(struct vecset *self);
Question 2.3 Donner le code d’une fonction qui ajoute un point à un ensemble
de points.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
void vecset_push(struct vecset *self, struct vec p);
Question 2.8 Donner le code d’une fonction qui dépile un élément.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
void vecset_pop(struct vecset *self);
Question 2.9 Donner le code d’une fonction qui renvoie le premier élément
de la pile.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
const struct vec *vecset_second(const struct vecset *self);