阿摩線上測驗 登入

申論題資訊

試卷:98年 - 098年高3資料結構#47848
科目:公職◆資料結構
年份:98年
排序:0

題組內容

一、二元樹(binary tree)

申論題內容

⑷如何利用線性掃瞄方式,判斷一個前序運算式(prefix expression)是否合法? (7 分)

詳解 (共 1 筆)

詳解 提供者:114年高考上榜
要判斷一個前序運算式是否合法,可以使用線性掃瞄方式,遍歷運算式的每個元素,同時利用一個堆疊(stack)來記錄每個運算符的操作數,具體步驟如下:
 
從左至右遍歷前序運算式的每個元素。
如果當前元素是一個運算符,將其壓入堆疊中。
如果當前元素是一個操作數,則從堆疊中彈出該運算符,並將其對應的操作數加1。
如果在彈出運算符之前,堆疊已經為空,或者彈出的運算符沒有對應的操作數,則前序運算式不合法,返回false。
當所有元素都被處理完畢後,檢查堆疊是否為空,如果不為空,則前序運算式不合法,返回false。
如果前序運算式合法,返回true。