logo

Tek bağlantılı listede gezinme

Çaprazlama, tek bağlantılı listenin hemen hemen her senaryosunda gerçekleştirilen en yaygın işlemdir. Çaprazlama, üzerinde bazı işlemler gerçekleştirmek için listedeki her düğümü bir kez ziyaret etmek anlamına gelir. Bu, aşağıdaki ifadeler kullanılarak yapılacaktır.

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

Algoritma

    AŞAMA 1:PTR'yi AYARLA = BAŞADIM 2:IF PTR = BOŞ

    'BOŞ LİSTE' YAZIN
    ADIM 7'YE GİT
    IF'IN SONU

    ADIM 4:PTR != NULL KADAR ADIM 5 VE 6'YI TEKRARLAYINADIM 5:PTR'I YAZDIR→ VERİADIM 6:PTR = PTR → SONRAKİ

    [DÖNGÜ SONU]

    ADIM 7:ÇIKIŞ

C işlevi

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

Çıktı

 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