棧:棧是限定僅在表尾進行插入和刪除操做的線性表數據結構
隊列:隊列是隻容許在一端進行插入操做,而在另外一端進行刪除操做的線性表隊列
棧的插入操做,叫作進棧,也稱壓棧、入棧。相似子彈入彈夾求職
棧的刪除操做,叫做出棧,也有的叫做彈棧。相似彈夾中的子彈彈出來。遍歷
進棧出棧變化形式:數據
若是咱們有三個整型數字元素一、二、3依次進棧會有哪些出棧次序呢?字符
棧的應用-四則運算表達式求職數字
1.後綴(逆波蘭)表示法定義。
1.什麼是中綴表達式。
9+(3-1) *3+10÷2
2.什麼是後綴表達式。
9 3 1 - 3 * + 10 2 / +
3.那麼後綴表達式如何由中綴 表達式轉化而來呢?
規則:從左到右遍歷中綴表達式的每一個數字和符號,如果數字就輸出,即成爲後綴表達式的一部分;如果符號,則判斷其與棧頂符號的優先級,是右括號或優先級低於棧頂符號(乘除優先加減)則棧頂元素依次出棧並輸出,並將當前符號進棧,一直到最終輸出後綴表達式爲止。
1.初始化一個空棧,用來對符號進出棧使用。
2.第一個字符是數字9,輸出9,後面是符號‘+’,進棧。
3.第三個字符是「(」,依然是符號,因其只是左括號,還未配對,故進棧。
4.第四個字符是數字3,輸出3,總表達式爲9 3,接着是‘-’,進棧。
5.接下來是數字1,輸出,總表達式9 3 1,後面是符號「)」,此時咱們須要去匹配此前的"(",因此棧頂依次出棧,並輸出,直到「(」出棧爲止,此時左括號上方只有"-",所以輸出「-」,總表達式爲9 3 1 -。
6.接下來,詳情請看《大話數據結構》第四章