#include<stdio.h> #include<conio.h> #include<stdlib.h> struct stack { int data; struct stack *link; };/*End of struct stack*/ struct stack *top=NULL; void push(); void pop(); void display(); void main() { int ch; while(1) { clrscr(); printf("\nPress 1 For Push."); printf("\nPress 2 For Pop"); printf("\nPress 3 For Display"); printf("\nPress 4 For Exit"); printf("\nEnter Your Choice: "); scanf("%d",&ch); switch(ch) { case 1: push(); break; case 2: pop(); break; case 3: display(); break; case 4: exit(0); default: printf("\nInvalid Choice.. Try Again"); getch(); }/*End of switch*/ }/*End of while*/ }/*End of void main()*/ void push() { struct stack *p; p=(struct stack *)malloc(sizeof(struct stack)); printf("\nEnter Data: "); scanf("%d",&p->data); if(top==NULL) { top=p; top->link=NULL; }/*End of if*/ else { p->link=top; top=p; }/*End of else*/ printf("\nElement Pushed"); getch(); }/*End of void push()*/ void pop() { struct stack *node; if(top==NULL) { printf("\nStack Underflow"); getch(); return; }/*End of if*/ printf("\n%d Popped.",top->data); node=top; top=top->link; free(node); getch(); }/*End of void pop()*/ void display() { struct stack *node; if(top==NULL) { printf("\nStack Is Empty.."); getch(); return; }/*End of if*/ node=top; printf("\nTop -> "); while(node!=NULL) { printf("%d -> ",node->data); node=node->link; }/*End of while loop*/ printf("NULL"); getch(); }/*End of void display()*/