设从键盘输入一整数的序列:a1,a2,a3,…an,试编写算法实现:用栈结构存储输入的整数,当ai≠一1时,将ai进栈;当ai=一1时,输入栈顶整数并出栈。算法应对异常情况(如栈满等)给出相应的信息。

admin2014-12-25  36

问题 设从键盘输入一整数的序列:a1,a2,a3,…an,试编写算法实现:用栈结构存储输入的整数,当ai≠一1时,将ai进栈;当ai=一1时,输入栈顶整数并出栈。算法应对异常情况(如栈满等)给出相应的信息。

选项

答案 #define maxsize 100 void PushPops(Sqstack &s) {/*根据输入序列的值,进行入栈和出栈操作*/ for(i=1;i<=n;i++) {scanf(“%d”,&a); if(a!=一1)/*a=-1则入栈*/ if(s.top==maxsize) {print f(“栈满”); exit(0); } elseS.base[s.top++]=x; else /*a=一1栈顶元素出栈*/ if(s.top==0) {print f(”栈空”); exit(0); } else {s.top--; print f(“%d”,s.base[s.top]); } } }

解析 该题就是完成一个人栈和出栈操作,并在操作过程中要判断栈满和栈空的情况,    以便做出相应的处理。算法描述如下。
转载请注明原文地址:https://kaotiyun.com/show/CYVx777K
0

最新回复(0)