In this program, we are going to share a C program to implement queues using stacks. If you are a beginner and want to start learning the C programming, then keep your close attention in this tutorial as I am going to share a C program to implement queues using stacks with the output.
We have designed this program for beginners for learning purpose. Copy below c program and execute it with c compiler to see the output of the program.
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | #include <stdio.h> #include <stdlib.h> void push1(int); void push2(int); int pop1(); int pop2(); void enqueue(); void dequeue(); void display(); void create(); int st1[100], st2[100]; int top1 = -1, top2 = -1; int count = 0; void main() { int ch; printf("\n1 - Enqueue element into queue"); printf("\n2 - Dequeu element from queue"); printf("\n3 - Display from queue"); printf("\n4 - Exit"); create(); while (1) { printf("\nEnter choice"); scanf("%d", &ch); switch (ch) { case 1: enqueue(); break; case 2: dequeue(); break; case 3: display(); break; case 4: exit(0); default: printf("Wrong choice"); } } } /*Function to create a queue*/ void create() { top1 = top2 = -1; } /*Function to push the element on to the stack*/ void push1(int data) { st1[++top1] = data; } /*Function to pop the element from the stack*/ int pop1() { return(st1[top1--]); } /*Function to push an element on to stack*/ void push2(int data) { st2[++top2] = data; } /*Function to pop an element from th stack*/ int pop2() { return(st2[top2--]); } /*Function to add an element into the queue using stack*/ void enqueue() { int data, i; printf("Enter data into queue"); scanf("%d", &data); push1(data); count++; } /*Function to delete an element from the queue using stack*/ void dequeue() { int i; for (i = 0;i <= count;i++) { push2(pop1()); } pop2(); count--; for (i = 0;i <= count;i++) { push1(pop2()); } } /*Function to display the elements in the stack*/ void display() { int i; for (i = 0;i <= top1;i++) { printf(" %d ", st1[i]); } } |
If you like FreeWebMentor and you would like to contribute, you can write an article and mail your article to [email protected] Your article will appear on the FreeWebMentor main page and help other developers.