难度很大的堆栈题

来源:百度知道 编辑:UC知道 时间:2024/05/12 16:13:17
已知元素8,25,14,87,51,90,6,19,20,问这些元素以怎样的顺序进入栈,才能使出栈的顺序满足:8在51前面;90在87的后面;20在14的后面;25在6的前面;19在90的后面。

A)20,6,8,51,90,25,14,19,87
B)51,6,19,20,14,8,87,90,25
C)19,20,90,7,6,25,51,14,87
D)6,25,51,8,20,19,90,87,14
E)25,6,8,51,87,90,19,14,20
请问怎样分析?
怎么不可以8进了立刻出去,然后51进来?这样我看BCD都满足啊。

很简单,栈是先进后出,要达到8在51前面;90在87的后面;20在14的后面;25在6的前面;19在90的后面,入栈的时候就要反过来,8在51后面;90在87的前面;20在14的前面;25在6的后面;19在90的前面

符合的只有D

后进先出,很简单的。
挨个看,比如第一个8在51之前压的那出栈自然在后了,所以不可以,依此类推:得正确答案:D。

d吧

首先分析
A选项:90在87后面,19在90的后面,则有87 90 19
入栈为90 19 87 根据fifo在87入栈前绝不可能有90 19出栈的,这样真正的出栈顺序为87 19 90 故A不正确

51,6,19,20,14,8,87,90,25

B:有一个出栈顺序:当进到87时出栈,再入90再出
于是有:87 90 25 8 14 20 19 6 51
你看满足吗?