logo

العبور في قائمة مرتبطة منفردة

تعد عملية الاجتياز هي العملية الأكثر شيوعًا والتي يتم تنفيذها في كل سيناريو تقريبًا للقائمة المرتبطة بشكل فردي. يعني العبور زيارة كل عقدة في القائمة مرة واحدة لإجراء بعض العمليات عليها. وسيتم ذلك باستخدام العبارات التالية.

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

خوارزمية

    الخطوة 1:تعيين PTR = الرأسالخطوة 2:إذا كان PTR = NULL

    اكتب 'قائمة فارغة'
    انتقل إلى الخطوة 7
    نهاية إذا

    الخطوة 4:كرر الخطوتين 5 و6 حتى PTR != NULLالخطوة 5:طباعة PTR → البياناتالخطوة 6:PTR = PTR → التالي

    [نهاية الحلقة]

    الخطوة 7:مخرج

وظيفة ج

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

انتاج |

 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