元素出棧 入棧順序的合法性。

2021-08-04 02:11:37 字數 818 閱讀 1951

1.【基礎題】–元素出棧、入棧順序的合法性。

如:入棧的序列(1,2,3,4,5),出棧序列為(4,5,3,2,1),則合法。

入棧的序列(1,2,3,4,5),出棧序列為(4,5,2,3,1),則不合法。

#include

#include

#include

using

namespace

std;

//input為入棧序列,output為出棧序列,lenin為入棧元素個數;lenout為出棧元素個數

bool ispoporder(const

int* input, const

int* output,int lenin,int lenout)

stack

s;//入棧

int j=0;

for (int i=0;iwhile (j0&&s.top()==output[j])

}return s.size()==0? true:false;

}int main()

;//入棧序列

int output1=;//出現序列1

int output2=;//出棧序列2

int sz=sizeof(input)/sizeof(input[0]); //入棧的元素大小

int sz1=sizeof(output1)/sizeof(output1[0]);

int sz2=sizeof(output2)/sizeof(output2[0]);

cout

cout

}

元素出棧 入棧順序的合法性

元素出棧 入棧順序的合法性。如入棧的序列 1,2,3,4,5 出棧序列為 4,5,3,2,1 很直觀的一種想法,建立乙個輔助棧,把輸入的第乙個序列中的數字一次壓入該輔助棧,並按照第二個序列的順序從該棧中彈出數字。遍歷出棧順序中的元素,有兩種情況 1 如果元素是棧頂的元素,則pop出來 2 如果不是棧...

元素出棧 入棧順序的合法性

問題描述 判斷元素出棧 入棧順序的合法性。如入棧的序列 abcde 出棧序列為 deabc 思路 定義兩個陣列分別來存放入棧和出棧序列 步驟1 先將字串1的第乙個字元入棧 步驟2 將該元素與字串2的第乙個元素進行比較 步驟3 a 如果相等,就將該元素出棧並且將字串1的下乙個字元入棧,與字串2的下乙個...

判斷元素出棧入棧順序的合法性

思路 假設入棧序列,出棧序列 首先我們將入棧序列的第乙個元素入棧,這是設定乙個指標只想出棧序列的第乙個元素,如果出入棧以後,棧頂 元素和出棧指標所指向的元素相等,那麼就讓棧頂元素出棧,讓指標 最後判斷棧為空就好,若為空,就說明是合法的,如果不是就是不合法。如下 include include inc...