Circular Header linked list
Header linked list এর শেষ node এর link এ null value থাকে, এখন সেই শেষ node এর link এ প্রথম node এর address থাকলে সেই header linked list কে বলে circular header linked list. একটি tail pointer শেষের node কে point করে থাকবে।
সমস্যাঃ আমরা একটা circular header linked list তৈরি করতে চাই যেখানে ব্যবহারকারি (user) বলে দিবে কতটা Node থাকবে আর তাদের INFO কি কি হবে।
সমাধান: আমরা এর আগে যেভাবে header linked list তৈরি করেছি সেইভাবেই করব, শুধু algorithm শেষ হওয়ার আগে কিছু instruction বেশি লেখব, তা হচ্ছেঃ
p↑.link←headএখানে p pointer টা শেষ node কে point করে আছে।
tail←p
Algorithm:
This algorithm Create a circular link list where head pointer point the first node of the header linked list.
1. Read nFLOW CHART (Create a Circular Header Linked List):
2. p←∧ and i ← 1
3. Repeat step 4 to 8 while i≤n
4. New_Node(q);
5. Read: x;
6. q↑.INFO←x;
7. If p=∧ then: head←q
Else: p↑.LINK←q
8. p←q;
9. p↑.LINK←head
10. tail←p.
11. Exit
সমস্যাঃ আমরা এবার circular header linked list traverse করব, আর node এর data print করব।
Algorithm:
This algorithm traverses a circular header link list.Flow Chart (Traverse A Circular Linked List)
1. p←head
2. Write: p↑.INFO
3. p←p↑.LINK
4. Repeat step 2 and 3 while p≠head
5. Exit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include<stdio.h> #include<stdlib.h> struct node{ int INFO; struct node *LINK; }; int main(){ struct node *q=NULL,*p=NULL,*head=NULL,*tail=NULL; int i,n,x; printf("Enter Number of Node: "); scanf("%d",&n); for(i=1;i<=n;i++){ printf("Enter a value:"); scanf("%d",&x); q = (struct node *)malloc(sizeof(struct node)); q->LINK = NULL; q->INFO = x; if(p==NULL){ head = q; printf("Head: %x\n",head); } else{ p->LINK = q; printf("Current: %x\t INFO:%d Next: %x\n",p,p->INFO,p->LINK); } p=q; printf("Next: %x\t INFO:%d \n",p,p->INFO); } p->LINK=head; tail=p; /*Traverse*/ p=head; if(p==NULL) printf("Empty"); else do{ printf("%d ",p->INFO); p=p->LINK; }while(p!=head); return 0; } |
No comments:
Post a Comment