logo

Traverserar i enkellänkad lista

Traversering är den vanligaste operationen som utförs i nästan varje scenario med en länkad lista. Att korsa innebär att besöka varje nod i listan en gång för att utföra en operation på den. Detta kommer att göras med hjälp av följande uttalanden.

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

Algoritm

    STEG 1:SET PTR = HUVUDSTEG 2:OM PTR = NULL

    SKRIV 'TOM LISTA'
    GÅ TILL STEG 7
    SLUT PÅ OM

    STEG 4:Upprepa STEG 5 OCH 6 TILL PTR != NULLSTEG 5:SKRIV UT PTR→ DATASTEG 6:PTR = PTR → NÄSTA

    [SLUT PÅ LOOP]

    STEG 7:UTGÅNG

C-funktion

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

Produktion

 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