数据结构课程栈出栈入栈问题
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);
} 展开
{
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);
} 展开
展开全部
题目中没有给出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
最初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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询