資料結構實驗題 判斷入棧出棧操作序列是否合法

2021-06-18 10:01:43 字數 605 閱讀 3840

假設以i和o分別代表入棧和出棧操作,設計乙個演算法判斷任一給定的棧操作序列是否合法。(例如:ioioiiooio)

演算法的設計思想:依次掃瞄出棧入棧操作序列,每掃瞄至乙個位置,需檢查出棧次數是否大於入棧次數,若大則非法。

掃瞄結束後,再檢查出棧次數與入棧次數是否相等,若不相等,則非法。

c**如下:

#include#include#include#include#includechar s[1000];

/* * 判斷一組入棧出棧操作序列是否合法的演算法

* **tue sep 17 2013 wuyudong */

/** *judge - 判斷函式

*@str : 一組入棧出棧操作序列,預設為字元型

**/bool judge(char *str)

break;

default:

break;

} i++;

} if (i_count != o_count) else

}int main()

return 0;

}

資料結構實驗題 判斷入棧出棧操作序列是否合法

假設以i和o分別代表入棧和出棧操作,設計乙個演算法判斷任一給定的棧操作序列是否合法。例如 ioioiiooio 演算法的設計思想 依次掃瞄出棧入棧操作序列,每掃瞄至乙個位置,需檢查出棧次數是否大於入棧次數,若大則非法。掃瞄結束後,再檢查出棧次數與入棧次數是否相等,若不相等,則非法。c 如下 1 in...

資料結構實驗題 判斷入棧出棧操作序列是否合法

假設以i和o分別代表入棧和出棧操作,設計乙個演算法判斷任一給定的棧操作序列是否合法。例如 ioioiiooio 演算法的設計思想 依次掃瞄出棧入棧操作序列,每掃瞄至乙個位置,需檢查出棧次數是否大於入棧次數,若大則非法。掃瞄結束後,再檢查出棧次數與入棧次數是否相等,若不相等,則非法。c 如下 1 in...

資料結構 棧的入棧 出棧序列

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