如何判斷出棧序列合理性

2021-07-10 15:04:24 字數 1250 閱讀 3392

模擬棧的入棧和出棧,根據較大的數先出棧, 比它小的數必須由大到小出棧,但不一定連續出棧

如: 3 2 1 5 4   或者 3 2 5 4 1 ————3先出棧,2和1必須由大到小出棧,他們可以連續出棧也可以在中間隔著幾個數,但1在2前出棧坑定是不行的,如 3 1 2 5 4 或3 1 5 4 2,這都是不合理的順序

這裡使用了之前學習棧編寫的stack類  

當然你也可以c++自帶的,在開頭加#include ,如宣告乙個int型別的棧 stacks;  具體使用可看看這

#include#include#include using namespace std;

templateclass stack

//析構函式

~stack()

//入棧

bool push(const type &element)

//棧頂向上移,並賦值

top_index++;

elements[top_index] = element;

return true;

} //出棧

bool pop()

//棧頂向下移

top_index--;

return true;

} //獲取棧頂元素

type top()else

} //判斷棧是否為空

bool empty()else

}};int main()

for (i = 0; i = minimum)

//還要更新還沒壓入棧的最小的序號,要加1,因為p[i]已經壓進去了

minimum = p[i] + 1;

}else

} //出棧(經過上面的if,else,能保證出棧順序能像自己手動輸入一樣[如果出棧順序是合理的話])

如何判斷出棧序列合理性

模擬棧的入棧和出棧,根據較大的數先出棧,比它小的數必須由大到小出棧,但不一定連續出棧 如 3 2 1 5 4 或者 3 2 5 4 1 3先出棧,2和1必須由大到小出棧,他們可以連續出棧也可以在中間隔著幾個數,但1在2前出棧坑定是不行的,如 3 1 2 5 4 或3 1 5 4 2,這都是不合理的順...

出棧入棧合理性

出棧入棧合理性,用兩指標指向兩陣列,建立一新棧來儲存元素。對於入棧陣列的指標一直往下走,併入棧,當與出棧陣列元素相等時,讓棧中的元素pop,還原入棧出棧的過程。如果在這種情況下不處理的話,會導致入棧陣列元素一直往下走,若入棧較多元素後連續出棧,會導致判斷失誤 入棧元素一直往後走,而之前早入棧的元素會...

判斷括號的合理性

給出乙個僅包含字元 和 的字串,判斷給出的字串是否是合法的括號序列 括號必須以正確的順序關閉,和 都是合法的括號序列,但 和 不合法。本次題目主要考察了棧的思想,採用假設的方法,如果該字串是合法的,每乙個左括號一定會對應乙個右括號,所以在出棧的時候一定是和當前所對應的字元一樣。public stat...