日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

栈的重要应用---四则运算

發布時間:2023/12/31 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 栈的重要应用---四则运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 概述
  • 中綴轉后綴
  • 后綴表達式計算

歡迎未來的大佬前來觀看!!!

概述

棧的應用有很多,最最最最最重要的一個實現就是四則運算。對于四則運算的實現,首先需要了解兩個概念:中綴表達式后綴表達式

中綴表達式:通用的算術或邏輯公式表示方法。簡單的來說就是我們從小到大所學的數學運算表達式都是中綴表達式,也可以稱為標準表達式。例如8 + (5 - 2 ) × 3 + 6 ÷ 2。

后綴表達式:為了更好的解決四則運算發明的一種不帶有括號的表達式。

計算機處理四則運算一般有兩個步驟:

  • 中綴表達式轉為后綴表達式
  • 后綴表達式進行運算
  • 這兩個步驟都是通過棧來實現的。

    中綴轉后綴

    轉換規則:從左到右一次遍歷中綴表達式,如果是數字則輸出,如果是符號,則根據當前符號棧頂符號優先級輸出(右括號或棧頂優先級高于當前符號則輸出),然后當前符號進棧,直到輸出完成。

    我們以8 + (5 - 2 ) × 3 + 6 ÷ 2為例。

    1.創建一個空棧。

    2.第一個字符是數字8,直接輸出,此時表達式8。

    3.第二個字符是符號+,進棧,此時表達式8。

    4.第三個字符是符號(,左括號沒有匹配,進棧,此時表達式8。

    5.第四個字符是數字5,直接輸出,此時表達式8 5。

    6.第五個字符是符號-,進棧,此時表達式8 5。

    7.第六個字符是數字2,直接輸出,此時表達式8 5 2。

    8.第七個字符是符號),因為有一個(與之匹配,出棧,直到遇見(為止,此時表達式8 5 2 -。

    9.第八個字符是符號×,因為+優先級小于×,所以×進棧,此時表達式8 5 2 -。


    10.第九個字符是數字3,直接輸出,此時表達式8 5 2 - 3。


    11.第十個字符是符號+,此時的× 優先級高于+,全部出棧(注:因為沒有比+優先級更低的符號,即便棧底元素與之平級),然后+入棧,此時表達式8 5 2 - 3 * +(這里使用計算機符號*來替換×)。


    12.第十一個字符是數字6,直接輸出,此時表達式8 5 2 - 3 * + 6。


    13.第十二個字符是符號÷,此時的÷ 優先級高于+,入棧,此時表達式8 5 2 - 3 * + 6。

    14.第十三個字符是數字2,直接輸出,此時表達式8 5 2 - 3 * + 6 2。

    15.至此遍歷完成,棧中剩下的字符依次出棧,此時表達式8 5 2 - 3 * + 6 2 / +(這里使用計算機符號/來替換÷)。

    后綴表達式計算

    計算規則:從左到右一次遍歷后綴表達式,如果是數字則進棧,如果是符號,則出棧兩個數字進行計算,計算完成后將結果入棧,直至完成為止。

    1.對于求出的后綴表達式8 5 2 - 3 * + 6 2 / +,前三個字符都是數字,依次進棧。

    2.第四個字符是符號-,2和5出棧進行計算(注:此時5是被減數),得到計算結果5-2=3,入棧。

    2.第五個字符是數字3,入棧,第六個字符是*,3和3出棧進行計算,得到計算結果3*3=9,入棧。

    3.第七個字符是符號+,9和8出棧進行計算,得到計算結果8+9=17,入棧。緊接著第八第九字符是數字,入棧。


    4.第十個字符是符號/,2和6出棧進行計算(此時6是被除數),得到計算結果6/2=3,入棧。

    5.最后剩下字符+,3和17出棧進行運算,得到計算結果17+3=20,至此計算完成!!!!!

    感謝您的閱讀!!!

    總結

    以上是生活随笔為你收集整理的栈的重要应用---四则运算的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。