问题描述
解决方案
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"
解决方案二:
脑补下,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
时间: 2025-01-01 12:59:17