logo

Pārvietošanās atsevišķi saistītajā sarakstā

Pārvietošana ir visizplatītākā darbība, kas tiek veikta gandrīz katrā atsevišķi saistītā saraksta scenārijā. Traversēšana nozīmē katra saraksta mezgla apmeklējumu vienreiz, lai ar to veiktu kādu darbību. Tas tiks darīts, izmantojot šādus paziņojumus.

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

Algoritms

    1. SOLIS:SET PTR = HEAD2. SOLIS:JA PTR = NULL

    RAKSTI 'TUKŠU SARAKSTU'
    PĀRIET UZ 7. SOLI
    JA BEIGAS

    4. SOLIS:ATKĀRTOTI 5. UN 6. DARBĪBU, LĪDZ PTR != NULL5. SOLIS:DRUKĀT PTR→ DATI6. SOLIS:PTR = PTR → TĀLĀK

    [CILPAS BEIGAS]

    7. SOLIS:IZEJA

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

Izvade

 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