假設以i和o分別代表入棧和出棧操作,設計乙個演算法判斷任一給定的棧操作序列是否合法。(例如:ioioiiooio)
演算法的設計思想:依次掃瞄出棧入棧操作序列,每掃瞄至乙個位置,需檢查出棧次數是否大於入棧次數,若大則非法。
掃瞄結束後,再檢查出棧次數與入棧次數是否相等,若不相等,則非法。
c**如下:
1 #include2 #include3 #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就不可能是該壓棧序列的彈出序列。思路 每次將入棧序列乙個元素入棧...