logo

Traversée dans une liste à chaînage unique

Le parcours est l’opération la plus courante effectuée dans presque tous les scénarios de liste à chaînage unique. Traverser signifie visiter chaque nœud de la liste une fois afin d'effectuer une opération sur celui-ci. Cela sera fait en utilisant les instructions suivantes.

 ptr = head; while (ptr!=NULL) { ptr = ptr -> next; } 

Algorithme

    ÉTAPE 1:DÉFINIR PTR = TÊTEÉTAPE 2:SI PTR = NULL

    ÉCRIRE 'LISTE VIDE'
    ALLER À L'ÉTAPE 7
    FIN DE SI

    ÉTAPE 4:RÉPÉTEZ LES ÉTAPES 5 ET 6 JUSQU'À PTR != NULLÉTAPE 5 :IMPRIMER PTR → DONNÉESÉTAPE 6 :PTR = PTR → SUIVANT

    [FIN DE BOUCLE]

    ÉTAPE 7 :SORTIE

Fonction C

 #include #include void create(int); void traverse(); struct node { int data; struct node *next; }; struct node *head; void main () { int choice,item; do { printf('
1.Append List
2.Traverse
3.Exit
4.Enter your choice?'); scanf('%d',&choice); switch(choice) { case 1: printf('
Enter the item
'); scanf('%d',&item); create(item); break; case 2: traverse(); break; case 3: exit(0); break; default: printf('
Please enter valid choice
'); } }while(choice != 3); } void create(int item) { struct node *ptr = (struct node *)malloc(sizeof(struct node *)); if(ptr == NULL) { printf('
OVERFLOW
'); } else { ptr->data = item; ptr->next = head; head = ptr; printf('
Node inserted
'); } } void traverse() { struct node *ptr; ptr = head; if(ptr == NULL) { printf('Empty list..'); } else { printf('printing values . . . . .
'); while (ptr!=NULL) { printf('
%d',ptr->data); ptr = ptr -> next; } } } 

Sortir

 1.Append List 2.Traverse 3.Exit 4.Enter your choice?1 Enter the item 23 Node inserted 1.Append List 2.Traverse 3.Exit 4.Enter your choice?1 Enter the item 233 Node inserted 1.Append List 2.Traverse 3.Exit 4.Enter your choice?2 printing values . . . . . 233 23