Created
May 9, 2016 00:12
-
-
Save agaikwad123/3eeeca166458c5553f7cc6395df46331 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<stdio.h> | |
#include<conio.h> | |
#define MAX 6 | |
typedef struct stack | |
{ | |
int data[MAX]; | |
int top; | |
}stack; | |
void init(stack *); | |
int empty(stack *); | |
int full(stack *); | |
int pop(stack *); | |
void push(stack *,int); | |
void print(stack *); | |
void main() | |
{ | |
stack s; | |
int x,op; | |
init(&s); | |
clrscr(); | |
do { | |
printf("\n\n1)Push\n2)Pop\n3)Print\n4)Quit"); | |
printf("\nEnter Your choice: "); | |
scanf("%d",&op); | |
switch(op) | |
{ case 1:printf("\n enter a number :"); | |
scanf("%d",&x); | |
if(!full(&s)) | |
push(&s,x); | |
else | |
printf("\nStack is full......"); | |
break; | |
case 2:if(!empty(&s)) | |
{ x=pop(&s); | |
printf("\npopped value= %d",x); | |
} | |
else | |
printf("\nStack is empty....."); | |
break; | |
case 3:print(&s);break; | |
} | |
}while(op!=4); | |
} | |
void init(stack *s) | |
{ | |
s->top=-1; | |
} | |
int empty(stack *s) | |
{ | |
if(s->top==-1) | |
return(1); | |
return(0); | |
} | |
int full(stack *s) | |
{ | |
if(s->top==MAX-1) | |
return(1); | |
return(0); | |
} | |
void push(stack *s,int x) | |
{ | |
s->top=s->top+1; | |
s->data[s->top]=x; | |
} | |
int pop(stack *s) | |
{ | |
int x; | |
x=s->data[s->top]; | |
s->top=s->top-1; | |
return(x); | |
} | |
void print(stack *s) | |
{ | |
int i; | |
printf("\n"); | |
for(i=s->top;i>=0;i--) | |
printf("%d ",s->data[i]); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment