一、基本要求
用下述三條具體規則)實現。設大寫字母表示魔王語言的詞彙;小寫字母表示人的語言詞彙;希臘字母表示可以用大寫字母或小寫字母代換的變數。魔王語言可含人的詞彙。
(1)a→sae (a的規則可以自己定義,比如a→abc)
(2)b→tada (b的規則也可以自己定義哈)
(3)(θδ1δ2...δn)→θδnδn-1...θδ1θ
二、實現提示
將魔王的語言自右至左進棧,總是處理棧頂字元。若是開括號,則逐一出棧,將字母順序入佇列,直至閉括號出棧,並按規則要求逐一出佇列再處理後入棧。其他情形較簡單,請讀者思考應如何處理。應首先實現棧和佇列的基本操作。
三.測試資料
b(ehnxgz)b解釋成
tsaedsaeezegexenehetsaedsae
**如下:
測試資料:
輸入a規則:
sae#
輸入b規則:
tada#
輸入魔王說的話:
b(ehnxgz)b#
tsaedsaeezegexenehetsaedsae
棧和佇列 魔王語言解釋
1 作業系統 windows 10 x64 1 首先實現棧和佇列的基本操作,棧和佇列都採用順序儲存結構,佇列通過取模形成迴圈佇列。class stack status push char a status pop char a class queue status enqueue char e st...
棧和佇列的綜合應用
迷宮問題。假設迷宮由m行n列構成,有乙個入口和乙個出口,入口座標為 1,1 出口座標為 m,n 試設計並驗證以下演算法 找出一條從入口通往出口的路徑,或報告乙個 無法通過 的資訊。1 用c語言實現順序儲存結構上佇列的基本操作,然後利用該佇列的基本操作找出迷宮的一條最短路徑。2 設計乙個二維陣列maz...
棧和佇列(二) 棧的應用舉例
一 數制轉換 十進位制數n和其它d進製數的轉換是計算機實現計算的基本問題,其解決方法很多,其中乙個簡單的演算法是基於下列原理 n n div d d n mod d。其中 div為整除運算,mod為求餘運算。例 1348 10 2504 8,其運算過程如下 n n div 8 n mod 8 134...