静态栈。用判扒数组做就好了掘毁昌。
成都创新互联2013年开创至今,先为尼泸西等服务建站,尼泸西等地企业,进行企业商务咨询服务。为尼泸西企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
int Stack[Max];
int top=0;
进栈则Stack[++top]=element;
出栈余橘则输出 Stack[top--];
//该销仔基程序简单并可正确运行,希望kutpbpb的回答能对你有所帮助!
#includestdio.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.top;i!=S.base;i--)
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);
}
工具/材料:以Microsoft Visual Studio 2010为例。
1、首先在桌面上,点击“Microsoft Visual Studio 2010”图标。败伍喊
2、然后在该界面中,先定义栈最大的存储空间。
2、其次在该界面中,编写初始化空栈函数代码。
3、之后在该界面中,编写判断空栈函数代码。
4、接着在该界面中,编写判断栈满函数代码。
5、其次在该界面中,编写进栈、出栈函数代码。
6、接着在该界面中,编写进制转化函数代码。
7、之后在该界面中,编写清空栈函数代码。
8、最后橘或在该界面察野中,编写主函数调用各个函数代码。
可以的,先别被题目骗了,岁散说是1,2,3,4为输入序列,实际上只是按照这个顺序执行,并非一次性把1,2,3,4连续放进栈里面,什么情况下会有出栈为3,2,4,1呢?就是,先进栈1,2,3,然后3出栈,再2出栈乎悉氏,然后4进栈,陆宴4出栈,再1出栈,那么就满足你提出的可能了。