logo

מעבר ברשימה מקושרת בודדת

מעבר היא הפעולה הנפוצה ביותר שמתבצעת כמעט בכל תרחיש של רשימה מקושרת בודדת. מעבר פירושו ביקור בכל צומת ברשימה פעם אחת כדי לבצע פעולה כלשהי על זה. זה ייעשה באמצעות ההצהרות הבאות.

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

אַלגוֹרִיתְם

    שלב 1:SET PTR = HEADשלב 2:IF PTR = NULL

    כתוב 'רשימה ריקה'
    עבור לשלב 7
    END OF IF

    שלב 4:חזור על שלבים 5 ו-6 עד PTR != NULLשלב 5:הדפס PTR → נתוניםשלב 6:PTR = PTR → NEXT

    [סוף לולאה]

    שלב 7:יְצִיאָה

פונקציה C

 #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