logo

Navegant per una llista enllaçada individualment

La travessa és l'operació més habitual que es realitza en gairebé tots els escenaris de llista enllaçada individualment. Travessar significa visitar cada node de la llista una vegada per fer-hi alguna operació. Això es farà mitjançant les declaracions següents.

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

Algorisme

    PAS 1:SET PTR = CAPPAS 2:SI PTR = NULL

    ESCRIU 'LLISTA BUIDA'
    ANAR AL PAS 7
    FINAL DE IF

    PAS 4:REPETIR ELS PASS 5 I 6 FINS PTR != NULLPAS 5:IMPRIMIR PTR→ DADESPAS 6:PTR = PTR → SEGÜENT

    [FI DEL BULE]

    PAS 7:SORTIR

funció 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; } } } 

Sortida

 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