ABCDE 入棧,不可能的出棧次序是?

2021-08-22 05:56:17 字數 292 閱讀 4209

abcde 入棧,不可能的出棧次序是?

如果要列出所有可能的次序再去判斷不可能的次序是一件成本非常高的事情。

所以這裡面一定是有規律的。

所以規律是:答案中出棧的第乙個元素是在原來的次序中是第幾個,那麼他的前面的元素必然都還在棧中。

如edcba是可能的,因為e在第乙個,e是原序列中的最後乙個,那abcd必在棧中只能按棧規則出,即dcba。

如dceab的順序是不可能的,因為如果d是首個,那麼abc必在棧中,無論e在什麼時候入棧和出棧,d之後的出棧順序必有cba的大致順序,可見不會出現這種順序。

不可能的出棧序列 思想

例如 有入棧順序abcde,列出所有不可能的出棧序列。首先列出一些出棧序列,找出其中不可能的序列,觀察其中的規律。例如 d b e a c這個就是不可能的。c a b e d這個也是不可能的。c d e b a這個就是可以的。通過觀察,滿足如下規律的是可能的序列 在它後面的,比它先入棧的,需要在此後...

棧的入棧,出棧,顯示入棧元素

要實現的功能如下 printf t t1.入棧 n printf t t2.出棧 n printf t t3.顯示棧內元素 n define maxsize 5 巨集定義 typedef struct stack 定義棧 void push stack p,int e void printstack...

「根據入棧順序判斷可能的出棧順序」python語言

題目描述 輸入兩個整數序列,其中乙個序列表示棧的push 入 順序,判斷另乙個序列有沒有可能是對應的pop 出 順序。class stack 實現棧的功能 def init self self.items 判斷棧是否為空 def empty self return self.items none 返...