Dynamic Implementation of Stack
Some function of stack are as follows:
Push Fuction
void push() { int n; struct node *nw; nw=(struct node*)malloc(sizeof(struct node)); printf("\n Enter item in stack:"); scanf("%d",&n); nw->item=n; nw->next=0; if(top==0) { top=nw; } else { nw->next=top; top=nw; } }
Pop Fuction
void pop() { int item; struct node *ptr; if(top==0) { printf("\n Stack is empty"); } else { item=top->item; ptr=top; printf("\n item popped is=%d", item); top=top->next; free(ptr); } }
Implementation of stack using'c'
/* Dynamic implementation of stack*/ #include<stdio.h> #include<conio.h> #include<alloc.h> struct node { int item; struct node *next; }; struct node *top; void push() { int n; struct node *nw; nw=(struct node*)malloc(sizeof(struct node)); printf("\n Enter item in stack:"); scanf("%d",&n); nw->item=n; nw->next=0; if(top==0) { top=nw; } else { nw->next=top; top=nw; } } void pop() { int item; struct node *ptr; if(top==0) { printf("\n Stack is empty"); } else { item=top->item; ptr=top; printf("\n item popped is=%d", item); top=top->next; free(ptr); } } void display() { struct node *ptr; printf("\n item in stack are"); for(ptr=top; ptr!=0; ptr=ptr->next) printf("\n %d", ptr->item); } void main() { char ch,ch1; ch ='y'; ch1='y'; top=0; clrscr(); while(ch!='n') { push(); printf("\n Do you want to push any item in stack y/n"); ch=getch(); } display(); while(ch1!='n') { printf("\n Do you want to delete any item in stack y/n"); ch1=getch(); pop(); } display(); getch(); }
Output
