| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
    Comment créer une liste doublement chaînée dans C Programming
    Les programmeurs utilisent des listes chaînées comme structures de données linéairement franchissables . Cela signifie que le programmeur peut commencer dès le début de la liste (appelée la tête) et avancer dans la liste un élément à la fois . Cette méthode de stockage des données permet également au programmeur d'ajouter efficacement les données de la liste, offrant une alternative plus souple à certaines autres structures de données telles que des tableaux dynamiques . Cet exemple montre comment construire une liste simple doublement chaînée , qui permet la navigation de la liste sur deux directions ( avant et arrière) . Choses que vous devez
    éditeur de texte C /C + + Compiler ou IDE (tels que Microsoft Visual Studio)
    Afficher plus Instructions
    1

    créer la structure noeud servira du type de la liste chaînée de données. Dans l'éditeur de texte, saisissez le code suivant :

    # include

    int main {

    struct ListNode {

    les données int ;

    jambe ListNode * prev ;

    jambe ListNode * suivant ;

    };

    return 0; }


    " ListNode struct " bloc de code crée un modèle pour les articles qui vont peupler la liste. Ce modèle définit un ListNode comme contenant trois éléments: un élément de données (un entier) et des pointeurs vers les articles précédents et suivants de la liste. Un pointeur est une variable qui contient une adresse de mémoire . Les pointeurs sont utilisés pour se référer à d'autres structures de données en mémoire profonde et d'allouer dynamiquement de la mémoire lors de l'exécution de code.
    2

    déclarer les variables qui vont organiser la structure de liste . Insérer cet exemple de code dans le fichier texte:

    taille de int;

    ListNode * tête ;

    ListNode * queue;

    queue = tête ; < br >

    tête = queue ;

    Ces deux indicateurs sont le début et la fin de la liste , respectivement. L'utilisation de ces pointeurs , le programmeur sait où le début de la liste et où la fin est tout simplement en vérifiant si le noeud courant est le «chef» ou le pointeur de "queue " . Ils ont tous deux renvoient les uns aux autres dans le cas d' une liste vide.
    3

    Créer un algorithme simple pour ajouter des éléments de la liste chaînée . Suivez cet exemple de code :

    vide append ( int num) {

    struct ListNode * traceur = tête ;

    struct ListNode * newNode = (struct ListNode *) malloc ( sizeof (struct ListNode ) ) ;

    newNode -> data = num ;

    if ( tête == null) {
    tête de

    = newNode ;

    queue = newNode ;

    newNode -> prev = tête ;

    newNode - > suivant = queue;

    } else {


    tout (traceur - > suivant = queue! )

    { = traceur traceur - > suivant ; }

    newNode -> prev = traceur;

    newNode - > suivant = queue;

    traceur - > suivant = noeud;

    queue = noeud;

    }
    taille

    + +;

    }

    Ce code ajoute un nœud à la fin de la liste . Il commence par créer un pointeur vers la tête de la liste ( «traceur» ) . Ensuite , il crée un pointeur vers un bloc de mémoire alloué dynamiquement mis de côté pour un ListNode nouvellement créée ( newNode ) et établit les données de ce noeud à l'entier " num" . Si les points de la tête à NULL ( la liste est vide , parce que les points de la tête à rien ), puis le code insère le nœud au début de la liste. Sinon, les "while" cycles de boucle à travers les nœuds de la liste jusqu'à atteindre le dernier nœud. Lorsque «traceur» pointe vers le dernier élément de la liste, le code insère le nœud . La dernière commande ajoute à l'entier «taille» , en gardant une trace des éléments de la liste
    4

    Créer un algorithme pour supprimer et produit à partir de la fin de la liste: .

    vide removeNode () {

    if ( queue = tête! ) {

    struct ListNode * Fin = queue;

    queue = queue -> prev ;
    < p> libre ( fin ) ;
    taille

    - ;

    } }


    Ce code crée un pointeur ( «fin» ) à la dernière élément de la liste ( les éléments mêmes "queue" souligne ) . Ensuite , la queue est réglé pour pointer vers l'élément juste avant le dernier élément ( le noeud pointé par le pointeur " prev" du dernier élément ) . Enfin, la mémoire utilisée par dernier noeud , désigné par «fin» , est libéré pour une utilisation ultérieure .

    Previous :

    next :
      articles connexes
    ·Comment faire pour supprimer SQLite en C 
    ·Comment calculer les expressions avec incrémentation e…
    ·Comment configurer le contrôle GridView Datakey dans l…
    ·Comment savoir si une ligne ou une colonne en DataGridV…
    ·Comment faire une horloge en C 
    ·Comment utiliser OpenGL avec des blocs de code 
    ·Comment Sortie de Visual C 
    ·Pair /Impair fonction en programmation C 
    ·Comment supprimer une ligne dans DataGridView 
    ·Comment crypter un fichier dans C # 
      articles en vedette
    ·Comment faire la distinction entre le traitement des pa…
    ·Comment faire pour supprimer des numéros de ligne dans…
    ·Comment créer un projet Visual Basic en utilisant le n…
    ·Comment écrire un parcours préfixe 
    ·Comment Contribute CS3 FlashPaper 
    ·Comment faire pour supprimer l'histoire dans ASP.NET 
    ·Comment utiliser le DirListBox en VB6 
    ·Comment utiliser SearchEx méthode en VB6 
    ·Comment pointeurs void de déréférencer 
    ·Comment reconstruire les index sur MYSQL 
    Copyright © Connaissances Informatiques http://fr.wingwit.com