輸入兩個整數序列, 其中乙個表示棧的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指標指向的元素進行比較 因為假設序列中整數都不相等...