logo

Traversering i enkeltlenket liste

Traversering er den vanligste operasjonen som utføres i nesten alle scenarier med enkeltkoblede liste. Å krysse betyr å besøke hver node på listen én gang for å utføre en operasjon på den. Dette gjøres ved å bruke følgende utsagn.

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

Algoritme

    TRINN 1:STILL PTR = HODESTEG 2:HVIS PTR = NULL

    SKRIV 'TOM LISTE'
    GÅ TIL TRINN 7
    SLUTT PÅ IF

    TRINN 4:GJENTA TRINN 5 OG 6 TIL PTR != NULLTRINN 5:SKRIV UT PTR→ DATATRINN 6:PTR = PTR → NESTE

    [END OF LOOP]

    TRINN 7:EXIT

C funksjon

 #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; } } } 

Produksjon

 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