假設以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就不可能是該壓棧序列的彈出序列。思路 每次將入棧序列乙個元素入棧...