ykarray / c_pointers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

c_pointers

file.c

Ce code en langage C implémente une structure de données de file d'attente (FIFO : Premier Entré, Premier Sorti) à l'aide d'une liste chaînée. Le code fournit des fonctions pour initialiser la file d'attente, ajouter des éléments à la fin de la file d'attente, supprimer des éléments de la tête de la file d'attente et afficher le contenu de la file d'attente. La fonction principale initialise une file d'attente, ajoute plusieurs éléments, affiche la file d'attente, la vide en retirant les éléments un par un et affiche à nouveau la file d'attente vide. Le code est bien commenté pour faciliter la compréhension de chaque fonction et son rôle dans la mise en œuvre de la file d'attente.

pile.c

Ce code implémente une pile (ou stack) en utilisant des structures de données de type liste chaînée. La pile est initialisée et vérifiée pour savoir si elle est vide, puis des éléments sont ajoutés (enpilés) à l'aide de la fonction "enpiler". Les éléments sont ensuite retirés (dépilés) à l'aide de la fonction "depiler", qui retire l'élément le plus récemment ajouté (Last-In, First-Out). La fonction "afficher" permet d'afficher les éléments de la pile, tandis que les fonctions "tete" et "queue" permettent de renvoyer respectivement le premier et le dernier élément de la pile. Le code teste également les différentes fonctions en ajoutant plusieurs éléments à la pile et en les retirant un par un.

listechainee.c

Ce programme en langage C implémente une liste chaînée simplement chaînée, avec des fonctions pour ajouter des éléments au début, à la fin et à une position donnée, afficher la liste, supprimer le premier et le dernier élément de la liste, et afficher la liste à l'envers. Il inclut également une fonction pour insérer un élément dans une liste triée.

La liste est implémentée sous forme de pointeurs vers des éléments, où chaque élément contient une valeur entière et un pointeur vers l'élément suivant. La liste elle-même est représentée par un pointeur vers le premier élément.

La fonction ajouterDebut ajoute un nouvel élément au début de la liste, en créant un nouveau pointeur Element et en lui attribuant la valeur x et un pointeur vers l'élément suivant de la liste. La fonction ajouterFin ajoute un nouvel élément à la fin de la liste, en créant un nouveau pointeur Element, en lui attribuant la valeur x et en le liant au dernier élément de la liste. La fonction ajouterK ajoute un nouvel élément à une position donnée k dans la liste, en recherchant la position et en appelant la fonction ajouterDebut pour insérer l'élément à la position appropriée.

La fonction affiche affiche les valeurs de tous les éléments de la liste, en parcourant la liste à partir du premier élément. La fonction supDebut supprime le premier élément de la liste, en ajustant le pointeur de la liste pour pointer vers le deuxième élément et en libérant la mémoire de l'élément supprimé. La fonction supFin supprime le dernier élément de la liste, en parcourant la liste pour trouver l'avant-dernier élément et en ajustant son pointeur next pour pointer vers NULL, tout en libérant la mémoire de l'élément supprimé. La fonction affichenv affiche la liste à l'envers en utilisant une récursion.

La fonction inserTrier insère un élément dans une liste triée, en vérifiant si la liste est vide ou si la valeur de l'élément est inférieure à la première valeur de la liste. Dans ce cas, la fonction ajouterDebut est appelée pour insérer l'élément en début de liste. Sinon, la fonction est récursivement appelée sur l'élément suivant de la liste jusqu'à ce qu'une position appropriée soit trouvée.

La fonction main teste toutes les fonctions avec différents scénarios en créant une liste, en ajoutant des éléments, en insérant des éléments à des positions différentes, en supprimant des éléments, en affichant la liste à l'envers et en insérant des éléments dans une liste triée.

About


Languages

Language:C 100.0%