Python實驗-計算器

從字符串中提取 Token 的步驟是順序讀取字符,判斷字符類型,然后把 Token 的類型和值存入 Token 列表。

輸入字符串處理

提取offset位置處的一個字符

如果沒有后續字符則返回None

取字符的位置向后移動一位

定義字符節點

整數類型的Token

從字符串中讀取字符直到字符不是整數

如果讀取的內容不為空則返回整數,否則返回None

操作(+,-)類型的Token

讀取一個字符,然后返回這個字符,如果字符不是+-,則返回None

從 Token 列表中順序讀取 Token,根據 Token 的類型生成表達式樹,表達式樹的葉子節點為整數,其余節點為操作符。

從 Token 列表生成表達式二叉樹

取出 tokens[0],該 Token 類型為整數

從第二個 Token 開始循環取出

相鄰兩個 Token 的類型一樣則為錯誤

如果 Token 為操作符,則保存為操作符節點,把前一個整數 Token 作為左子節點

如果 Token 為整數,則將該 Token 保存為右節點

獲取輸入字符串

從輸入字符串獲得Token列表

從Token列表生成表達式樹

遍歷計算表達式樹并輸出結果

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,981評論 19 139
  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,270評論 0 4
  • 標題: Rakudo and NQP Internals子標題: The guts tormented imple...
    焉知非魚閱讀 1,433評論 1 3
  • 上午外出辦事,開車的路上聽著收音機,有一個臺播放著關于夢想的話題,聽的我心里感觸良多,像一床正在被彈著棉花被,不斷...
    晴溪閱讀 378評論 4 0
  • 今天回趟老家看望父母,吃飯間,母親拿出一個紅包給我妻子,說是我外婆給我女兒結婚的紅包。我們驚詫萬分:女兒還在讀大一...
    廟港日立閱讀 979評論 6 4