Accueil Finances personnelles Comment créer une liste chaînée en programmation C - des nuls

Comment créer une liste chaînée en programmation C - des nuls

Vidéo: Langage C #19 - listes 2025

Vidéo: Langage C #19 - listes 2025
Anonim

Dans la programmation C, si vous voulez ajouter une deuxième structure au code que vous avez déjà créé, créez une liste chaînée - une série de structures qui contiennent des pointeurs les uns aux autres. Avec les données de base dans une structure, la structure contient un pointeur, qui contient l'adresse de la structure suivante dans la liste.

Avec une jonglerie astucieuse de noms de pointeurs, plus une valeur NULL pour plafonner la fin de la liste, vous pourriez vous retrouver avec quelque chose de similaire au code source dans Un exemple de liste chaînée primitive.

EXEMPLE DE LIAISON PRIMITIVE

#include #include #include int main () {struct stock {char symbol [5]; quantité int; prix flottant; struct stock * suivant;}; struct stock * d'abord; struct stock * courant; struct stock * nouveau; / * Crée une structure en mémoire * / first = (structure stock *) malloc (tailleof (struct stock)); if (first == NULL) {puts ("Une sorte d'erreur malloc ()"); exit (1);} / * Attribue des données de structure * / current = first; strcpy (symbole courant->, "GOOG"); courant-> quantité = 100; current-> prix = 801. 19; current-> next = NULL; nouveau = (struct stock *) malloc (sizeof (struct stock)); if (new == NULL) {puts ("Une autre erreur malloc ()"); exit (1);} current-> next = nouveau; courant = nouveau; strcpy (symbole courant-> "MSFT"); courant-> quantité = 100; courant-> prix = 28. 77; current-> next = NULL; / * Afficher la base de données * / puts ("portefeuille de placement"); printf ("SymboltSharestPricetValuen"); courant = premier; printf ("% - 6st% 5dt%. 2ft%. 2fn", courant-> symbole, courant-> quantité, courant-> prix, courant-> quantité * courant-> prix); courant = courant-> suivant; printf ("% - 6st% 5dt%. 2ft%. 2fn", courant-> symbole, courant-> quantité, courant-> prix, courant-> quantité * courant-> prix); return (0);}

Ce code source est assez long, mais il crée simplement une seconde structure, liée au premier. Ne laissez pas la longueur du code source vous intimider.

Les lignes 13 à 15 déclarent les trois pointeurs de structure standard requis pour une danse en liste chaînée. Traditionnellement, ils sont nommés en premier, actuel et nouveau. Ils jouent dans le quatrième membre de la structure, ensuite, trouvé à la ligne 11, qui est un pointeur de structure.

N'utilisez pas typedef pour définir une nouvelle variable de structure lors de la création d'une liste liée. Un exemple de liste liée primitive n'utilise pas typedef, donc ce n'est pas un problème avec le code, mais de nombreux programmeurs C utilisent typedef avec des structures. Faites attention!

Le nom de la variable new, utilisé à la ligne 15, est un mot réservé en C ++, donc si vous voulez être bilingue, changez le nom de la variable en new_struct ou autre chose que le mot new.

Lorsque la première structure est remplie, la ligne 30 attribue un pointeur NULL à l'élément suivant.Cette valeur NULL limite la fin de la liste liée.

La ligne 32 crée une structure en plaçant son adresse dans la nouvelle variable de pointeur. L'adresse est sauvegardée dans la première structure de la ligne 38. C'est ainsi que l'emplacement de la seconde structure est conservé.

Les lignes 40 à 43 remplissent les informations du second pointeur, en affectant une valeur NULL à l'élément suivant à la ligne 43.

La liaison a lieu lorsque le contenu des structures est affiché. La ligne 48 capture l'adresse de la première structure. Ensuite, la ligne 54 capture l'adresse de la structure suivante à partir de la première structure.

Exercice 1 : Tapez le code source de A Primitive Linked-List Example dans votre éditeur. Même si c'est long, tapez-le, car vous devrez le modifier plus tard (si vous n'êtes pas habitué à cela maintenant). Construire et courir.

Contrairement aux tableaux, les structures d'une liste liée ne sont pas numérotées. Au lieu de cela, chaque structure est liée à la structure suivante de la liste. Tant que vous connaissez l'adresse de la première structure, vous pouvez parcourir la liste jusqu'à la fin, qui est marquée par une valeur NULL.

Un exemple de liste de liens primitifs montre un code source mal fait avec beaucoup de code répété. Lorsque vous voyez plusieurs instructions comme celle-ci dans votre code, vous devriez immédiatement penser à "fonctions". "

UN EXEMPLE DE LIAISON MEILLEURE

#include #include #include #define ITEMS 5 struct stock {char symbol [5]; quantité int; prix flottant; struct stock * suivant;}; struct stock * d'abord; struct stock * courant; struct stock * nouveau; struct stock * make_structure (vide); void fill_structure (struct stock * a, int c); void show_structure (struct stock * a); int main () {int x; pour (x = 0; xnext = nouveau; current = new;} fill_structure (current, x + 1);} current-> next = NULL; / * Afficher la base de données * / puts ("Investment Portfolio"); printf ("SymboltSharestPricetValuen "); current = first; while (courant) {show_structure (courant); current = current-> next;} retour (0); struct struct * make_structure (vide) {struct stock * a; a = (struct stock *) malloc (sizeof (struct stock)); if (a == NULL) {puts ("Une sorte d'erreur malloc ()"); exit (1);} return (a);} void fill_structure (struct stock * a, int c) {printf ("Elément #% d /% d: n", c, ITEMS); printf ("Symbole de stock:"); scanf ("% s", a-> symbole); printf ("Nombre des partages: "); scanf ("% d ", & a-> quantité); printf (" Prix de l'action: "); scanf ("% f ", & a-> prix);} void show_structure (struct stock * a) {printf ("% - 6st% 5dt%. 2ft%. 2fn", a-> symbole, a-> quantité, a-> prix, a-> quantité * a-> prix);}

Listes les plus proches sont créés comme indiqué dans Un meilleur exemple de liste liée.La clé consiste à utiliser trois variables de structure, illustrées dans les lignes 13 à 15:

  • contient toujours l'adresse de la première structure de la liste. Toujours.

  • current contient l'adresse de la structure en cours de traitement, remplie de données ou affichée.

  • new est l'adresse d'une nouvelle structure créée en utilisant la fonction malloc ().

La ligne 7 déclare la structure de stock comme globale. De cette façon, il peut être consulté à partir des différentes fonctions.

La boucle for entre les lignes 25 et 39 crée de nouvelles structures, les reliant entre elles.La structure initiale est spéciale, donc son adresse est enregistrée dans la ligne 30. Sinon, une nouvelle structure est allouée, grâce à la fonction make_structure ().

À la ligne 35, la structure précédente est mise à jour; la valeur du courant n'est pas changée jusqu'à la ligne 36. Avant cela, le pointeur de la structure actuelle est mis à jour avec l'adresse de la structure suivante, nouvelle.

Sur la ligne 40, la fin de la liste chaînée est marquée en réinitialisant le nouveau pointeur de la dernière structure à une valeur NULL.

La boucle while de la ligne 46 affiche toutes les structures de la liste chaînée. La condition de la boucle est la valeur du pointeur actuel. Lorsque la valeur NULL est rencontrée, la boucle s'arrête.

Le reste du code affiché dans Un meilleur exemple de liste chaînée se compose de fonctions qui s'expliquent d'elles-mêmes.

Exercice 2 : Copiez le code d'un meilleur exemple de liste liée dans l'éditeur. Construire et courir.

Prenez note des instructions scanf () dans la fonction fill_structure (). Rappelez-vous que le symbole -> est la notation "peeker" pour un pointeur. Pour obtenir l'adresse, vous devez préfixer la variable avec un & dans la fonction scanf ().

Comment créer une liste chaînée en programmation C - des nuls

Le choix des éditeurs

Découvrir les Méditations de Pleine Conscience Formelle - les nuls

Découvrir les Méditations de Pleine Conscience Formelle - les nuls

Pour approfondir votre conscience consciente, vous devez pratiquer une méditation de pleine conscience sur une base quotidienne. Familiarisez-vous avec certaines des médiations suivantes. Avec le temps, vous deviendrez plus conscient de votre vie quotidienne. Body Meditation Meditation - Cette méditation implique de passer environ une demi-heure, en prenant conscience de ...

Démystifier Dan Brown: Les Templiers Royaux - les nuls

Démystifier Dan Brown: Les Templiers Royaux - les nuls

Les Templiers sont presque aussi fictifs dans Dan Brown Le code Da Vinci comme les chevaliers Jedi sont dans Star Wars. Bien que le héros Robert Langdon hésite d'abord à élever les Templiers dans ses cours, parce que la mention même d'eux fait ressortir les amants du complot, Brown n'a aucun problème à les faire participer ...

Démystification des mythes communs sur la franc-maçonnerie - mannequins

Démystification des mythes communs sur la franc-maçonnerie - mannequins

La franc-maçonnerie moderne existe depuis 1717. Les premières contre-vérités concoctées sur l'Ordre sont apparues en impression à peu près en même temps. Les États-Unis étaient consumés par l'hystérie anti-maçonnique à la fin des années 1820, et l'Europe a fait de Mason-bashing un sport populaire pendant deux siècles, le liant souvent à la propagande antisémite. Internet n'a que ...

Le choix des éditeurs

À L'aide de la boîte de dialogue Configurer l'affichage dans PowerPoint 2011 pour Mac - témoins

À L'aide de la boîte de dialogue Configurer l'affichage dans PowerPoint 2011 pour Mac - témoins

Dans la boîte de dialogue Configurer l'affichage dans PowerPoint, cliquez sur le bouton Configurer l'affichage dans l'onglet Diaporama du ruban Office 2011 pour Mac, ou choisissez Diaporama → Configurer l'affichage dans la barre de menus. Dans les deux cas, la boîte de dialogue Configurer l'affichage polyvalent apparaît. Choisir un type de spectacle dans PowerPoint 2011 pour Mac ...

Enregistrement des fichiers dans Office 2011 pour Mac - témoins

Enregistrement des fichiers dans Office 2011 pour Mac - témoins

Enregistrement d'un fichier sur lequel vous travaillez dans Office 2011 pour Mac est aussi simple que de cliquer sur le bouton Enregistrer dans la barre d'outils Standard, en appuyant sur Commande-S ou en choisissant Fichier → Enregistrer. Si votre fichier a été enregistré précédemment, l'enregistrement du fichier remplace la copie existante du fichier par votre version mise à jour. Si votre fichier n'a pas ...

Fonctionnant avec les modèles de diapositives maîtres dans PowerPoint 2011 pour Mac - les nuls

Fonctionnant avec les modèles de diapositives maîtres dans PowerPoint 2011 pour Mac - les nuls

Dans Office 2011 pour Mac, l'ajout d'une nouvelle présentation de diapositive à une diapositive dans la vue Diapositive maître de PowerPoint 2011 est une tâche assez simple à effectuer. Suivez ces étapes pour commencer: Assurez-vous que vous êtes en mode Masque des diapositives. Choisissez Affichage → Maître → Masque de diapositives dans la barre de menus. Cliquez sur l'onglet Masque des diapositives du ruban, ...

Le choix des éditeurs

Sélectionnez PowerPoint 2007 Objects - dummies

Sélectionnez PowerPoint 2007 Objects - dummies

Avant de pouvoir modifier un objet PowerPoint 2007 sur une diapositive, vous devez le sélectionner. Dans les présentations PowerPoint, les objets peuvent être du texte, des graphiques, des images clipart, des formes, etc. Voici quelques instructions pour sélectionner les objets PowerPoint 2007: Objets texte: Pour sélectionner un objet texte PowerPoint 2007, déplacez le point d'insertion sur le texte qui ...

Définir le contour de la forme sur une diapositive PowerPoint 2007 - dummies

Définir le contour de la forme sur une diapositive PowerPoint 2007 - dummies

Le contrôle shapePoint de powerPoint vous permet style des objets de ligne ou la bordure pour les objets de forme solide sur vos diapositives PowerPoint. Le contrôle Shape Outline se trouve dans le groupe Styles de formes de l'onglet Outils de dessin. Vous pouvez modifier les paramètres suivants pour le contour: Couleur: Définit la couleur utilisée pour ...

PowerPoint 2016 pour les nuls Cheat Sheet - les nuls

PowerPoint 2016 pour les nuls Cheat Sheet - les nuls

PowerPoint 2016 est le logiciel de présentation le plus puissant disponible pour créer et éditer la diapositive montrer des présentations pour le travail, la maison ou l'école. PowerPoint 2016 offre un certain nombre de raccourcis clavier utiles pour effectuer des tâches rapidement. Voici quelques raccourcis pour le formatage PowerPoint commun, l'édition et les tâches de fichiers et de documents. De plus, après avoir créé votre chef-d'œuvre, vous ...