已知有一整数序列{a
1
,a
2
,a
3
,…,a
n
}。栈A中只保存整数,即序列中元素为整数时允许其入栈。设计一个算法实现如下功能;用栈结构存储入栈的整数,当a
i
≠一1时,将a
i
进栈;当a
i
=-1时,输出栈顶整数并出栈。
【正确答案】正确答案:#define maxsize //栈空间容量 void InOutS(int s[maxsize]){ int top=0: //top为栈顶指针,定义top=0时为栈空 for(i=1;i<=n;i++){ //n个整数序列作处理 scanf(”%d”,&x); //从输入整数序列 if(x!=一1) //读入的整数不等于一1时入栈 if(top==maxsize-1){printf(”栈满\n”);exit(0);} else s[++top]=x; //x入栈 else{ //读入的整数等于一1时退栈 if(top==0){printf(”栈空\n”);exit(0); } else printf(”出栈元素是%d\n”,s[top--]); } } }
【答案解析】