求解数据结构栈的输出输入问题

图片说明
为何结果是stack?pop(s,x)的用法是什么?
O(∩_∩)O谢谢

3个回答

Pop(S,x)就是把栈S中的元素弹出来,放到x中。(不过不知道是用什么Pop是用什么方式实现的,像这样按值传递可以在Pop里改变x吗?)

1.Push(S,x);Push(S,'a');Push(S,y);
之后栈为:kac;
2.Pop(S,x);
之后栈为:ac;x=k;
3.Push(S,'t');Push(S,x)
之后栈为:ktac;
4.Pop(S,x)
之后栈为:tac;x=k;
5.Push(S,'s')
之后栈为:stac;
6.后面的while循环里将栈里的字符逐个Pop出来输出就是"stac"
7.最后的printf(x)(这是什么用法?C语言可以这用?)输出x里面的"k"
anj24
anj24 就是不清楚pop用法
接近 5 年之前 回复

脑补下,pop(s, x)应该是pop(Stack s, char& x),通过第二个参数来传出栈顶内容。
push就是把一个字符送入栈顶,pop就是删除栈顶元素,并且返回。
第一行
[] -> c -> ca -> cak
第二行
cak -> ca -> cat -> catk
第三行
catk -> cat -> cats
最后出栈stac,注意最后一次pop(s, x)出栈了k,所以最后输出x又输出了k
结果是stack

pop就是对栈s,弹出栈顶元素到x中,其实就是个函数吧,一般都是s.pop

anj24
anj24 可以说的详细点吗?
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐