应用题
29.已知有一整数序列{a1,a2,a3,…,an}。栈A中只保存整数,即序列中元素为整数时允许其入栈。设计一个算法实现如下功能:用栈结构存储入栈的整数,当ai≠一l时,将ai进栈;当ai=一1时,输出栈顶整数并出栈。
【正确答案】#define maxsize //栈空间容量
void InOutS(int S[maxsize]){
int top=0; //top为栈顶指针,定义top=0时为栈空
for(i=1;i<=n;i++)f //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一一]);
}
}
}
【答案解析】