| 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 chaînée en C
    En C, une liste chaînée vous permet de créer une liste sans en décider à l'avance combien de temps il pourrait être , et sans perdre de mémoire par des éléments allocation vous n'avez pas encore . L'inconvénient est que vous avez à faire tout le travail d'organisation et de gestion de la liste en mémoire. Instructions
    Créer la structure de données
    1

    Choisissez un nom, puis utiliser typedef à définir. Chaque liste chaînée aura besoin d'une structure , même si elle ne dispose que d' une seule variable :

     typedef struct product_data PRODUCT_DATA ; Page 2 

    définir la structure . Le dernier élément doit être un pointeur vers le type que vous venez de définir , et nommé "next" :

     struct {int product_data product_code ; int product_size ; PRODUCT_DATA * suivant ;} ; 
    3

    Allouer deux pointeurs vers cette structure de données , l'initialisation à NULL, comme la liste «tête» et «queue» :

     PRODUCT_DATA * products_head = NULL; PRODUCT_DATA * products_tail = NULL; 
    Ajouter à la liste < br > Hôtels 4

    Affecter une variable temporaire qui est un pointeur vers la structure de données :

     PRODUCT_DATA * newproduct ; 
    5

    utilisation malloc () pour créer un nouvel élément , toujours vérifier en cas d'erreur :

     if (( newproduct = malloc ( sizeof ( PRODUCT_DATA ))) == NULL ) { abort () ; } 
    6

    Remplir les champs du nouvel élément . Définissez son champ "Suivant" pour NULL :

     newproduct -> product_code = Code alternatif ; newproduct -> product_size = NewSize ; newproduct - > suivant = NULL; 
    7

    Définissez la variable de la tête . Si la variable de tête est NULL, c'est le premier élément ajouté à la liste, définissez la variable pour pointer vers elle la tête :

     si products_head = newproduct ; 
    8

    Préparez-vous à une autre ( products_head !) variable. Dans d'autres cas , la queue variable pointe vers le dernier élément de la liste , de sorte mis sa prochaine valeur pour pointer vers le nouvel élément:

     autre products_tail - > suivant = newproduct ; 
    9

    Mise à jour de la queue pointer vers le nouveau dernier élément , dans les deux cas :

     products_tail = newproduct ; 
    accéder à la liste
    10

    Créer une autre variable temporaire pointant vers la structure de données :

     * PRODUCT_DATA produit ; 
    11

    définir la variable temporaire à la variable de la tête :

     produit = products_head ; 
    12

    boucle à travers les éléments , vérifier chacun , puis en définissant la variable temporaire à l' prochaine pointeur de traverser à la suivante : alors que

     ( produit ) { if (! produit -> product_code = 15) { produit = produit - > suivant ;}} 
    13

    Vérifier si la variable est NULL . Si c'est le cas , vous n'avez jamais trouvé l'article :

     si return 0; ( produit ) . Sinon, il pointe l'élément que vous recherchez : 
     retour produit -> product_size ; 
    Nettoyez votre travail
    14

    DEALLOCATE la liste lorsque votre programme se termine , comme tous les systèmes d'exploitation ne se chargera automatiquement cette
    15

    boucle tant que la variable de la tête n'est pas NULL : .

     while ( products_head ) { 
    16

    magasin de sa prochaine pointeur dans la variable de queue temporaire :

     products_tail = products_head - > suivant ; 
    17

    DEALLOCATE l'élément : gratuit

     ( products_head ) ; 
    18

    Placez le pointeur de la tête du pointeur que vous avez enregistré à l'étape 4 :

     products_head = products_tail ;} 

    Previous :

    next :
      articles connexes
    ·Comment insérer une nouvelle ligne dans TextBox 
    ·Comment convertir un projet Xcode en fichiers 
    ·Comment effacer l'écran Avant une nouvelle boucle dans…
    ·Comment faire un C + + fenêtre principale sans un titr…
    ·Comment faire pour intégrer RESX dans la CSC compilate…
    ·Comment faire pour créer une zone d'image Nouveau à e…
    ·Comment lire une ligne à l'aide du RPC 
    ·Comment imprimer un triangle en C 
    ·Visual C Projets 
    ·Comment faire un MFC Application au pinceau de peinture…
      articles en vedette
    ·Comment formater des nombres décimaux en C # 
    ·Comment obtenir graphique en C + + 
    ·Comment utiliser Stdlib.h 
    ·Comment faire pour extraire la valeur de la case à coc…
    ·Comment lire entier de la console en Java 
    ·Comment créer une SCI avec PHP 
    ·Comment reconnaître les caractères point dans PHP 
    ·Comment nettoyer script Perl Format 
    ·Comment estimer le nombre de bogues dans un code 
    ·C + + Structure de répétition 
    Copyright © Connaissances Informatiques http://fr.wingwit.com