一个栈的入栈序列为ABCDEF,则不可能的出栈序列是

Posted 李学文

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个栈的入栈序列为ABCDEF,则不可能的出栈序列是相关的知识,希望对你有一定的参考价值。

技术之瞳 阿里巴巴技术笔试心得习题2.65: 
  一个栈的入栈序列为ABCDEF,则不可能的出栈序列是(D) 
  A、DEFCBA    B、DCEFBA    C、FEDCBA 
  D、FECDBA    E、ABCDEF    F、ADCBFE

  分析: 
  该题主要是考虑栈的核心思想是先进后出,并且需要注意入栈和出栈的顺序是未知的,例如你可以先入栈ABCD,然后出栈D,然后入栈E,出栈E,入栈F,出栈F,然后CBA依次出栈,也就是A选项的情况。 
  这里有一规律可记 
  任何出栈的元素后面出栈的元素必须满足以下三点: 
  1、在原序列中相对位置比它小的,必须是逆序; 
  2、在原序列中相对位置比它大的,顺序没有要求; 
  3、以上两点可以间插进行。

  我们再看选项D的出栈顺序FECDBA,明显出栈元素F后面的元素C和D不满足上面规律1,所以选项D是错误的,其它答案都是满足的。

以上是关于一个栈的入栈序列为ABCDEF,则不可能的出栈序列是的主要内容,如果未能解决你的问题,请参考以下文章

火车进出栈问题(Catalan数)

栈的出入

判断是否是合法的出栈序列

若已知一个栈的入栈顺序是1,2,3,...,n,其输出序列为P1,P2,P3,...,Pn,若P1是n,则Pi是

判断出栈序列是否可能是某个入栈序列的出栈序列,C++

Catalan数