棧的壓入 彈出序列

2021-08-17 06:29:49 字數 1357 閱讀 7338

題目:輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1、2、3、4、5是某棧的壓棧序列,序列4、5、3、2、1是該壓棧序列對應的乙個彈出序列,但4、3、5、1、2就不可能是該壓棧序列的彈出序列。

程式**:

#include 

// 函式名稱:initliststack

// 函式功能:初始化鏈棧

// 輸入引數:

// lst:鏈棧頭結點

// 輸出引數:

// 無

// 存在問題:無

void initliststack(liststack *&pliststack)

// 函式名稱:pushliststack

// 函式功能:壓棧

// 輸入引數:

// pliststack :鏈棧頭結點

// num :要壓入棧的元素

// 輸出引數:

// 無

// 存在問題:無

void pushliststack(liststack *&pliststack, int num)

else

pliststack->idata++;

pliststacktop->ptop = pliststack->ptop;

pliststack->ptop = pliststacktop;

}// 函式名稱:popliststack

// 函式功能:出棧

// 輸入引數:

// pliststack:鏈棧頭結點

// 輸出引數:

// 無

// 存在問題:無

void popliststack(liststack *&pliststack)

}bool pushpopliststack(int *ppush, int *ppop, int ilen)

while (iindexpush < ilen)

}if (iindexpop < ilen)

else

}int main()

; int ppop = ;

std::cout

<< "出入棧序列匹配結果:"

<< pushpopliststack(ppush, ppop, 5) << std::endl;

system("pause");

return

0;}

棧的壓入彈出序列

題目 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓棧序列,序列4,5,3,2,1是該棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。解答 可以用乙個輔助的棧來儲存入...

棧的壓入 彈出序列

輸入兩個整數序列,第乙個序列表示棧的壓入順序,判斷兩個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1 2 3 4 5是某棧的壓棧序列,序列4 5 3 2 1是該壓棧序列對應的乙個彈出序列,但4 3 5 1 2就不可能是該壓棧序列的彈出序列。bool ispoporder cons...

棧的壓入彈出序列

1.問題描述 輸入兩個整數序列,第乙個序列表示棧的壓入序列,請判斷第二個序列是否為該棧的彈出序列。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓棧序列,序列4,5,3,2,1是該棧序列對應的乙個彈出序列,但 4,3,5,1,2,就不可能是該壓棧序列的彈出序列。來自 劍指offer...