1. 程式人生 > >一個棧的入棧序列為ABCDEF,則不可能的出棧序列是

一個棧的入棧序列為ABCDEF,則不可能的出棧序列是

size 核心 span 順序 例如 錯誤 必須 分析 2.6

技術之瞳 阿裏巴巴技術筆試心得習題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,則不可能的出棧序列是