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

2021-09-08 16:56:12 字數 695 閱讀 8935

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

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

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

c**如下:

1 #include2 #include

3 #include4 #include5 #include6

7char s[1000];8

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

12**tue sep 17 2013 wuyudong

13*/

1415/**

16*judge - 判斷函式

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

19*/

20bool judge(char *str)

2135

break;36

default:37

break;38

}39 i++;40}

41if (i_count !=o_count) else48}

4950

intmain()

5155

return

0;

56 }

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

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

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

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

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

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