logo

Perėjimas atskirai susietame sąraše

Perėjimas yra labiausiai paplitusi operacija, kuri atliekama beveik kiekviename atskirai susieto sąrašo scenarijuje. Perėjimas reiškia apsilankymą kiekviename sąrašo mazge vieną kartą, kad būtų atlikta tam tikra operacija. Tai bus padaryta naudojant šiuos teiginius.

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

Algoritmas

    1 ŽINGSNIS:NUSTATYTI PTR = HEAD2 ŽINGSNIS:JEI PTR = NULIS

    PARAŠYKITE 'TUŠČIĄ SĄRAŠĄ'
    PEREITI 7 ŽINGSNIS
    IF PABAIGA

    4 ŽINGSNIS:KARTOKITE 5 IR 6 ŽINGSNIUS, KOL PTR != NULL5 ŽINGSNIS:SPAUSDINTI PTR→ DUOMENYS6 ŽINGSNIS:PTR = PTR → KITAS

    [KILPOS PABAIGA]

    7 ŽINGSNIS:IŠĖJIMAS

C funkcija

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

Išvestis

 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