棧的PUSH POP序列

2021-07-16 02:38:25 字數 477 閱讀 1273

輸入兩個整數序列, 其中乙個表示棧的push順序, 判斷另乙個序列有沒有可能是對應的pop序列。

//下面使用乙個棧來模擬這個操作過程, 棧頂元素等於出棧序列中的元素時出棧,不等於時入棧。

//如果棧正常pop直到為空,說明序列是對應的pop序列返回真, 否則返回假

1)pst 為已經初始化的棧

2)input為輸入棧序列

3)output為需要判斷的序列

4)n 為input序列中元素個數

*/int ispopseq(stack * pst, int input, int output, int n)

e.elem = input[in++];

push(pst, e);

printf("push %d\n", e.elem);

while(!isempty(pst))

else

}else

}return 1;

}

棧的push pop序列

棧的push pop序列 輸入兩個整數序列。其中乙個序列表示棧的push 順序,判斷另乙個序列有沒有可能是對應的 pop順序。為了簡單起見,我們假設 push 序列的任意兩個整數都是不相等的。比如輸入的push 序列是1 2 3 4 5,那麼4 5 3 2 1就有可能是乙個 pop系列。因為可以有如...

棧的push pop序列

題目 輸入兩個整數序列。其中乙個序列表示棧的push順序,判斷另乙個序列有沒有可能是對應的pop順序。為了簡單起見,我們假設push序列的任意兩個整數都是不相等的。比如輸入的push序列是1 2 3 4 5,那麼4 5 3 2 1就有可能是乙個pop系列。因為可以有如下的push和pop序列 pus...

29 棧的push,pop序列

題目 給定2個整數序列,其中1個是棧的push順序,判斷另乙個有沒有可能是對應的pop順序 解 其實這題主要是判斷進棧次數和出棧次數誓不是相等。我是用棧作的,效率不高,每乙個元素最多出棧1次,進棧1此,所以最多進行2n次操作,然後每次對棧頂元素和pb指標指向的元素進行比較 因為假設序列中整數都不相等...