logo

Gennemgang i enkeltforbundet liste

Traversering er den mest almindelige operation, der udføres i næsten alle scenarier med enkeltforbundne liste. At krydse betyder at besøge hver node på listen én gang for at udføre en eller anden operation på den. Dette vil ske ved at bruge følgende udsagn.

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

Algoritme

    TRIN 1:INDSTIL PTR = HOVEDTRIN 2:HVIS PTR = NULL

    SKRIV 'TOM LISTE'
    GÅ TIL TRIN 7
    SLUT PÅ HVIS

    TRIN 4:GENTAG TRIN 5 OG 6 INDTIL PTR != NULLTRIN 5:UDSKRIV PTR→ DATATRIN 6:PTR = PTR → NÆSTE

    [SLUKKE SLUT]

    TRIN 7:AFSLUT

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