logo

Doorkruisen in een enkelvoudig gekoppelde lijst

Doorkruisen is de meest gebruikelijke bewerking die wordt uitgevoerd in bijna elk scenario van een enkelvoudig gekoppelde lijst. Doorkruisen betekent dat u elk knooppunt van de lijst één keer bezoekt om daarop een bewerking uit te voeren. Dit zal worden gedaan aan de hand van de volgende verklaringen.

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

Algoritme

    STAP 1:SET PTR = HOOFDSTAP 2:ALS PTR = NULL

    SCHRIJF 'LEGE LIJST'
    GA NAAR STAP 7
    EINDE VAN ALS

    STAP 4:HERHAAL STAP 5 EN 6 TOT PTR != NULLSTAP 5:PRINT PTR → GEGEVENSSTAP 6:PTR = PTR → VOLGENDE

    [EINDE LUS]

    STAP 7:UITGANG

C-functie

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

Uitvoer

 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