1.B.push (A.pop ());
2.B.push (A.pop ());
3.B.push (A.peek());
4.if (A. IsEmpty())
A.push('Z');
else
B.push ('Z');
|____| |____|
|____| |____|
Top ->| E | |____|
| D | |____|
| G | |____|
stack frame A stack frame B
大家好,请问任何人解释1号线到4号线的情况?在理解线条时遇到问题。
答案 0 :(得分:1)
您从:
开始 |____| |____|
|____| |____|
Top ->| E | |____|
| D | |____|
| G | |____|
stack frame A stack frame B
<强> 1 强>
B.push (A.pop ());
这意味着,在B堆栈上推送从堆栈顶部检索(删除)的内容。
|_____| |____|
|_____| | |
|_____| | |
|__D__| | |
|__G__| | E |
stack frame A stack frame B
<强> 2 强>
B.push (A.pop ());
同样在这里。
|_____| |____|
|_____| | |
|_____| | |
|_____| | D |
|__G__| | E |
stack frame A stack frame B
第3 强>
B.push (A.peek());
这意味着,查看A堆栈顶部的内容,并将其推送到B堆栈。但是不要从A堆栈中删除它。
|_____| |____|
|_____| | |
|_____| | G |
|_____| | D |
|__G__| | E |
stack frame A stack frame B
<强> 4 强>
if (A. IsEmpty())
A.push('Z');
else
B.push ('Z');
这意味着 - 如果堆栈A为空,则在A上按字母Z,否则在堆栈B上按字母Z.
|_____| |____|
|_____| | Z |
|_____| | G |
|_____| | D |
|__G__| | E |
stack frame A stack frame B
答案 1 :(得分:0)
参考https://en.wikibooks.org/wiki/Data_Structures/Stacks_and_Queues
答案 2 :(得分:0)
基本上给定的伪代码将是
它将在剩余的元素(G)上偷看(即不从堆栈中删除但是查看)并将其推送到B.
它会检查堆栈A是否为空,如果是(它不是),那么它会将'Z'推到B上。
|____| |____|
|____| | Z |
|____| | G |
|____| | D |
| G | | E |
stack frame A stack frame B