数据结构课程栈出栈入栈问题

voidmain(){stacks;charx,y;InitStack(S);x='c';y='k';Push(S,x);Push(S,'a');Push(S,y);Po... void main()
{
stack s;
char x,y;
InitStack(S);
x='c';y='k';
Push(S,x);Push(S,'a');Push(S,y);Pop(S,x);Push(S,'t');Push(S,x);Pop(S,x);Push(S,'s');
while(!StackEmpty(S)){Pop(S,y);printf(y);};
printf(x);
}
展开
 我来答
阿冬76
推荐于2017-09-25 · TA获得超过5028个赞
知道大有可为答主
回答量:2710
采纳率:88%
帮助的人:1099万
展开全部
题目中没有给出push、pop两个函数的实现代码,猜测出题者的本意,应该是入栈和出栈过程中顺便给对应变量赋值,据此,答案如下:
最初x='c', y='k'

Push(S,x); //c入栈,栈中只有c
Push(S,'a'); //a入栈,栈中有c、a
Push(S,y); //k入栈,栈中有c、a、k
Pop(S,x); //k出栈,并赋值给x,此时x=k,栈中有c、a
Push(S,'t'); //t入栈,栈中有c、a、t
Push(S,x); //x入栈,即k入栈,栈中有c、a、t、k
Pop(S,x); //x出栈,即k出栈,此时x=k,栈中有c、a、t
Push(S,'s'); //s入栈,栈中有c、a、t、s
接下来通过循环做出栈动作,每次循环把栈顶的数据送给y,并打印,故依次打印s、t、a、c,
最后再打印x,x的值是k
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式