
#include<stdio.h>
#define N 100
typedef struct
{
int value[N]
int base
int top
}Sta
void print()
{
printf("\n菜单:")
printf("\n1.入栈:")
printf("\n2.出栈:")
printf("\n3.退出:")
}
void printS(Sta S)
{
printf("\n请输出栈中元素:")
for(int i=S.topi!=S.basei--)
printf("%d ",S.value[i-1])
}
void pushS(Sta&S,int e)
{
if(S.top==N)
printf("\n栈满")
else
S.value[S.top++]=e
}
void popS(Sta&S,int&e)
{
if(S.top==S.base)
printf("\n栈空")
else
{
e=S.value[--S.top]
printf("\n请输出出栈元素: %d",e)
}
}
void main()
{
Sta S
int e,choose
S.base=S.top=0
do{
print()
printf("\n请输入你的选项:")
scanf("%d",&choose)
switch(choose)
{
case 1:
printf("\n请输入入栈元素:")
scanf("%d",&e)
pushS(S,e)
printS(S)
break
case 2:
popS(S,e)
printS(S)
break
case 3:
default:
break
}
if(choose==3)
break
}while(1)
}
栈的结构是先入后出BUF1先入,BUF2后入,所以,要是pop的话,先出的是BUF2
因为,使用BUF1来接收POP的数据,所以POP BUF1,就是使用BUF1接收栈中BUF2的数据
同理,POP BUF2是使用BUF2接收栈中的BUF1数据
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)