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 |
/* www.troubleshootyourself.com C Program to demonstrate stack implementation using structures. */ #include<stdio.h> #define MAX 100 /* structure declaration */ typedef struct { int element[MAX]; int TOP; }STACK; STACK *s; /* Function to insert an item into stack. */ void pushItem(STACK *s,int ITEM) { if(s->TOP==MAX-1) { printf("\nSTACK is FULL.\n"); return; } s->element[++s->TOP]=ITEM; printf("\nITEM inserted successfully.\n"); } /* function: popItem( ), to delete an item from stack. */ int popItem(STACK *s) { int itm; if(s->TOP==-1) { printf("\nSTACK is empty.\n"); return; } itm=s->element[s->TOP]; s->TOP--; printf("\nItem removed : %d\n",itm); } /* Function to display stack elements. */ void dispItems(STACK *s) { int i; if(s->TOP == -1) { printf("STACK IS EMPTY."); return; } for(i=s->TOP;i>=0;i--) { printf("%d->",s->element[i]); } printf("\n"); } /* main function */ void main() { int num; char dummy; /* Memory allocation and initialization */ s=(STACK*)malloc(sizeof(STACK)); s->TOP=-1; int choice=0; again: /* display stack elements */ printf("\nSTACK ELEMENTS :"); dispItems(s); printf("\nSTACK OPTIONS \n0: Exit\n1: Add item\n2: Remove item \nEnter choice:"); scanf("%d",&choice); switch(choice) { case 0: { exit(1); } break; case 1: { printf("\nEnter an item to insert:"); scanf("%d",&num); pushItem(s,num); } break; case 2: { popItem(s); } break; default: { printf("\nInvalid Choice !"); } break; } scanf("%c",&dummy); goto again; } |
Check and run the program here:
You can run the above program on codeboard editor and see the results. You are allowed to modify code and run. In the editor there is a menu at the top-right corner. Here you can see two buttons such as ‘Compile’ and ‘Run’.
Software engineer by profession, and owned troubleshotyourself channel. Enthusiastic blogger and love to write articles on computer technology and programming. Reach me at kiran.troubleshootyourself@gmail.com.