logo

Parcurgerea în listă conectată individual

Traversarea este cea mai obișnuită operațiune care este efectuată în aproape fiecare scenariu de listă conectată individual. Parcurgerea înseamnă vizitarea fiecărui nod al listei o dată pentru a efectua o operațiune asupra acestuia. Acest lucru se va face folosind următoarele afirmații.

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

Algoritm

    PASUL 1:SET PTR = CAPPASUL 2:DACĂ PTR = NUL

    SCRIEȚI „LISTA GOLĂ”
    MERCEȚI PASUL 7
    SFÂRȘIT DE IF

    PASUL 4:REPEȚI PASUL 5 ȘI 6 PÂNĂ PÂNĂ PTR != NULLPASUL 5:PRINT PTR→ DATEPASUL 6:PTR = PTR → NEXT

    [Sfârșitul buclei]

    PASUL 7:IEȘIRE

funcția 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; } } } 

Ieșire

 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