一
從字符串中提取 Token 的步驟是順序讀取字符,判斷字符類型,然后把 Token 的類型和值存入 Token 列表。
輸入字符串處理
提取offset位置處的一個字符
如果沒有后續字符則返回None
取字符的位置向后移動一位
定義字符節點
整數類型的Token
從字符串中讀取字符直到字符不是整數
如果讀取的內容不為空則返回整數,否則返回None
操作(+,-)類型的Token
讀取一個字符,然后返回這個字符,如果字符不是+-,則返回None
二
從 Token 列表中順序讀取 Token,根據 Token 的類型生成表達式樹,表達式樹的葉子節點為整數,其余節點為操作符。
從 Token 列表生成表達式二叉樹
取出 tokens[0],該 Token 類型為整數
從第二個 Token 開始循環取出
相鄰兩個 Token 的類型一樣則為錯誤
如果 Token 為操作符,則保存為操作符節點,把前一個整數 Token 作為左子節點
如果 Token 為整數,則將該 Token 保存為右節點
三
獲取輸入字符串
從輸入字符串獲得Token列表
從Token列表生成表達式樹
遍歷計算表達式樹并輸出結果