write a program to implementation of stack using linked list in data structure.
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 |
#include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<dos.h> struct stack { int data; struct steck*next; }; typedef struct stack STACK; STACK*top = NULL; void push() { STACK*temp; if(top = = NULL) { top=(STACK*)malloc(sizeof(STACK)); printf("\n enter data : "); scanf("%d",&top->data); top->next=NULL; return; } temp=(STACK*)malloc(sizeof(STACK)); printf("\n Enter data: "); scanf("%d",&temp->data); temp->next=top; top=temp; return; } void pop() { STACK*temp; if(top==NULL) { printf("stack is inderflow \n"); system("PAUSE"); return; } printf("pop element is :%d\n",top->data); temp=top; top=top->next; temp->next=NULL; free(temp); system("PAUSE"); return; } void peek() { STACK*temp; if(top= = NULL) { printf("stack is empty \n"); system("PAUSE"); return; } printf("stack elements:"); temp = top; do { printf("d",temp>data); temp = temp->next; }while(temp!=NULL); system("PAUSE"); return; } int main(void) { int option; while(1) { system("CLS"); printf("\n PUSH PRESS 1: "); printf("\n PUSH PRESS 2: "); printf("\n PUSH PRESS 3: "); printf("\n PUSH PRESS 4: "); scanf("%d",&option); switch(option) { case 1: push(); break; case 2: pop(); break; case 3: peek(); break; case 4: free(top); return EXIT_SUCCESS; default: printf("INVALID OPTION \n"); system("PAUSE"); } } } |