একটি লিঙ্কযুক্ত তালিকা প্রোগ্রামের সাথে দেওয়া হলে স্ট্যাক ডেটা স্ট্রাকচার ব্যবহার করে শেষ থেকে শুরু করে সামনের দিকে তালিকাটি প্রিন্ট করতে হবে
Input : 10 -> 5 -> 3 -> 1 -> 7 -> 9 Output: 9 -> 7 -> 1 -> 3 -> 5 -> 10
এখানে ব্যবহারকারী স্ট্যাক[0] অবস্থানে স্ট্যাক পয়েন্টিং টপ থেকে এবং স্ট্যাক[n] এলিমেন্ট পর্যন্ত যাওয়ার চেয়ে পপিং উপাদানের পদ্ধতি ব্যবহার করতে পারে
অ্যালগরিদম
START Step 1 -> create structure Linked_list Declare int data Declare struct linked_list *next End Step 2 -> declare int stack[30], top = -1 Step 3 -> declare struct linked_list* head = NULL Step 4 -> create function int printfromstack(int stack[]) Loop While top>=0 Print stack[--top] End Step 5 -> create function int push(struct linked_list** head, int n) declare struct linked_list* newnode = (struct linked_list*)malloc(sizeof(struct linked_list)) set newnode->data = n set newnode->next = (*head) set (*head) = newnode step 6 -> create function int intostack(struct linked_list* head) Loop While head!=NULL Print head->data Set stack[++top] = head->data Set head = head->next End End Step 7 -> goto main() Call push(&head, 10) Call push(&head, 20) Call push(&head, 30) Call push(&head, 40) Call intostack(head) Call printfromstack(stack) STOP
উদাহরণ
#include <stdio.h> #include <stdlib.h> struct linked_list { int data; struct linked_list *next; }; int stack[30], top = -1; struct linked_list* head = NULL; int printfromstack(int stack[]) { printf("\nStack:\n"); while(top>=0) { printf("%d ", stack[top--]); } } int push(struct linked_list** head, int n) { struct linked_list* newnode = (struct linked_list*)malloc(sizeof(struct linked_list)); newnode->data = n; newnode->next = (*head); (*head) = newnode; } int intostack(struct linked_list* head) { printf("Linked list:\n"); while(head!=NULL) { printf("%d ", head->data); stack[++top] = head->data; head = head->next; } } int main(int argc, char const *argv[]) { push(&head, 10); push(&head, 20); push(&head, 30); push(&head, 40); intostack(head); printfromstack(stack); return 0; }
আউটপুট
যদি আমরা উপরের প্রোগ্রামটি চালাই তাহলে এটি নিম্নলিখিত আউটপুট তৈরি করবে
Linked list: 40 30 20 10 Stack: 10 20 30 40