国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式

這篇具有很好參考價(jià)值的文章主要介紹了【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

前言:?

中綴表達(dá)式:

?后綴表達(dá)式:

中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式:

后綴表達(dá)式計(jì)算結(jié)果:

總結(jié):?


前言:?

計(jì)算機(jī)在計(jì)算四則運(yùn)算的時(shí)候,由于括號以及運(yùn)算優(yōu)先級的存在,并不能夠很好的處理所有的運(yùn)算,為了處理這種情況,我們引入了后綴表達(dá)式來優(yōu)化算法。

中綴表達(dá)式:

????????中綴表達(dá)式是常見的數(shù)學(xué)表達(dá)式表示方法,即操作數(shù)位于操作符之間。例如,最常見的中綴算術(shù)表達(dá)式是 "3 + 4"。中綴表達(dá)式有一個(gè)顯著的特點(diǎn),就是需要采用運(yùn)算符優(yōu)先級來確定表達(dá)式的計(jì)算順序。如果表達(dá)式中包含不同優(yōu)先級的運(yùn)算符,則需要采用約定的優(yōu)先級規(guī)則來計(jì)算表達(dá)式。在處理中綴表達(dá)式時(shí),通常需要將表達(dá)式轉(zhuǎn)換為逆波蘭表達(dá)式或前綴表達(dá)式來方便計(jì)算。

?后綴表達(dá)式:

????????逆波蘭表達(dá)式,又稱后綴表達(dá)式,是一種數(shù)學(xué)表達(dá)式的表示方法。在逆波蘭表達(dá)式中,操作符在操作數(shù)之后,因此也被稱為后綴表示法。例如,表達(dá)式 “3 + 4” 在逆波蘭表達(dá)式中表示為 “3 4 +”。逆波蘭表示法可以通過棧來實(shí)現(xiàn),首先將所有操作數(shù)入棧,每當(dāng)遇到一個(gè)操作符時(shí),彈出棧頂?shù)膬蓚€(gè)操作數(shù)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果再次壓入棧中,直到整個(gè)表達(dá)式處理完畢。與傳統(tǒng)的中綴表達(dá)式相比,逆波蘭表達(dá)式的優(yōu)點(diǎn)是可以不用考慮運(yùn)算符優(yōu)先級的問題。

后綴表達(dá)式巧妙地解決了計(jì)算機(jī)在處理數(shù)字運(yùn)算的時(shí)候難處理算數(shù)優(yōu)先級的問題。

中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式:

轉(zhuǎn)化規(guī)則:從左到右遍歷中綴表達(dá)式中的每個(gè)數(shù)字和符號,如果是數(shù)字就輸出,成為后綴表達(dá)式的一部分,如果是符號,就判斷其與棧頂符號的優(yōu)先級,是右括號或優(yōu)先級不高于棧頂符號(乘除優(yōu)先于加減),則棧頂元素依次出棧并輸出,并把當(dāng)前符號進(jìn)棧,一直到最后輸出后綴表達(dá)式為止。

我們以?9+(3-1)*3+10/2?為例:

?第一步:第一個(gè)數(shù)字是9,直接輸出,第二個(gè)是+號,進(jìn)棧

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式

?第二步:第三個(gè)符號是 '?( ' ,依然是符號,但是是左括號還沒有配對,因此進(jìn)棧,左括號之后是3,為數(shù)字直接輸出,三后面是-號,進(jìn)棧。-號后面是數(shù)字1,出棧

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式

?第三步:數(shù)字1后面是 ‘ )’ ,已經(jīng)滿足我們前面提到的如果是右括號就出棧,因此棧頂依次出棧輸出,直到 ‘(’ 出棧為止。

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式?第四步:‘)’ 后面是 ‘ * ’ 號,此時(shí)入棧的和棧頂都是符號,就要進(jìn)行比較,因?yàn)?的優(yōu)先級比+高,因此入棧,‘*’號后面是數(shù)字3,直接輸出

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式

?第五步:數(shù)字3后面是‘ + ’號,此時(shí)棧頂?shù)?‘ * ’ 要比‘? +? ’的優(yōu)先級高,因此棧內(nèi)的元素全部出棧,‘+’號后面的是數(shù)字10,直接輸出。需要注意的是此處的+并不是9后面的+,而是3后面的+。

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式

?第六步:10后面是‘ / ’號,直接入棧,‘ / ’號后面是2,數(shù)字就輸出,因?yàn)榇藭r(shí)這個(gè)式子已經(jīng)結(jié)束了,我們就把棧內(nèi)剩余的符號依次出棧

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式

?這樣我們就得到了9+(3-1)*3+10/2的后綴表達(dá)式:9 3 1 - 3 * + 10 2 / +

后綴表達(dá)式計(jì)算結(jié)果:

我們?nèi)匀灰?strong>9+(3-1)*3+10/2為例,我們已經(jīng)得到了他的后綴表達(dá)式為9 3 1 - 3 * + 10 2 / +。

計(jì)算規(guī)則:從左到右遍歷表達(dá)式的每一個(gè)數(shù)字和符號,如果是數(shù)字就進(jìn)棧,如果是符號,就把處于棧頂?shù)膬蓚€(gè)數(shù)字出棧,進(jìn)行運(yùn)算,并讓計(jì)算結(jié)果再次進(jìn)棧,一直到最終獲得結(jié)果。

第一步:前三個(gè)都是數(shù)字,我們安排進(jìn)棧。

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式

第二步:1后面是‘?- ’號,我們就將1出棧作為減數(shù),3作為被減數(shù),計(jì)算得到結(jié)果2,再把2返回到棧里面。再接著讓‘?- ’號后面的3進(jìn)棧。

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式

第三步:3后面是‘ * ’號,我們就再次調(diào)出棧內(nèi)的兩個(gè)數(shù)字相乘,得到結(jié)果6,再把6入棧,在后面是‘ + ’號,就把9和6出棧相加,結(jié)果為15,再次返回棧中。

?第四步:把后面兩個(gè)數(shù)字10和2壓入棧里面,接下來是符號/,就調(diào)出棧頂?shù)?和10,10/2=5,再次把5壓入棧內(nèi)

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式

?第五步:最后一個(gè)符號是‘ + ’號,我們就把棧頂?shù)膬蓚€(gè)元素5和15拿出來,進(jìn)行相加,把得到結(jié)果的20入棧,此時(shí)式子已經(jīng)計(jì)算完畢,就是20,就讓20出棧,作為最終運(yùn)算結(jié)果。

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式

總結(jié):?

? ? ? ? ?逆波蘭表達(dá)式是一個(gè)用來解決計(jì)算機(jī)識別運(yùn)算優(yōu)先級很好的思路,它是對棧的一次高級運(yùn)用,學(xué)習(xí)逆波蘭表達(dá)式可以讓我們對于棧的作用更加深刻。

今天的內(nèi)容到這里就結(jié)束了,感謝大家的閱讀。

如果我的內(nèi)容對你有幫助,請點(diǎn)贊,評論,收藏。創(chuàng)作不易,大家的支持就是我堅(jiān)持下去的動(dòng)力!

【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式,【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法】,開發(fā)語言,算法,逆波蘭表達(dá)式文章來源地址http://www.zghlxwxcb.cn/news/detail-539194.html

到了這里,關(guān)于【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第二篇】后綴(逆波蘭)表達(dá)式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第三篇】 二叉樹

    【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第三篇】 二叉樹

    目錄 ?前言: ?二叉樹: 二叉樹的種類:? 二叉樹的存儲方式: 1. 鏈?zhǔn)酱鎯?2. 數(shù)組存儲 二叉樹的遍歷方式 深度優(yōu)先遍歷 廣度優(yōu)先遍歷 總結(jié): 本文將會詳細(xì)的介紹各種常見的樹以及相對應(yīng)的概念,存儲方式,遍歷方式。樹是經(jīng)典的數(shù)據(jù)結(jié)構(gòu),因此我們雖然不能做到手撕各

    2024年02月11日
    瀏覽(35)
  • 【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第十篇】動(dòng)態(tài)規(guī)劃

    【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第十篇】動(dòng)態(tài)規(guī)劃

    目錄 前言: 動(dòng)態(tài)規(guī)劃: 常見應(yīng)用: 解題步驟: ?動(dòng)態(tài)規(guī)劃的簡化步驟: 案例: 509. 斐波那契數(shù) - 力扣(LeetCode) 70. 爬樓梯 - 力扣(LeetCode) 62. 不同路徑 - 力扣(LeetCode) 總結(jié): ? ? ? ? 本文我們將為大家講解一下動(dòng)態(tài)規(guī)劃的理論知識,并且會講解幾道力扣的經(jīng)典例題。

    2024年02月11日
    瀏覽(30)
  • 【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第九篇】棧與隊(duì)列

    【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第九篇】棧與隊(duì)列

    目錄 ?前言: 棧: 棧的實(shí)際應(yīng)用:? 隊(duì)列: 隊(duì)列的實(shí)際應(yīng)用: 總結(jié): ? ? ? ? 棧與隊(duì)列是我們學(xué)習(xí)的兩個(gè)經(jīng)典的數(shù)據(jù)結(jié)構(gòu),這兩個(gè)數(shù)據(jù)結(jié)構(gòu)應(yīng)用廣泛,在計(jì)算機(jī)內(nèi)有很多底層應(yīng)用,而很多算法也是依靠棧和隊(duì)列來實(shí)現(xiàn)的,因此我們要想學(xué)好數(shù)據(jù)結(jié)構(gòu)與算法,就要學(xué)好棧與

    2024年02月15日
    瀏覽(13)
  • 【夜深人靜學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法 | 第十二篇】動(dòng)態(tài)規(guī)劃——背包問題

    【夜深人靜學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法 | 第十二篇】動(dòng)態(tài)規(guī)劃——背包問題

    ? 目錄 ?前言: ?01背包問題: 二維數(shù)組思路: 一維數(shù)組思路: 總結(jié): ? ? ? 在前面我們學(xué)習(xí)動(dòng)態(tài)規(guī)劃理論知識的時(shí)候,我就講過要介紹一下背包問題,那么今天我們就來講解一下背包問題。 在這里我們只介紹 01背包 ,至于分組背包和混合背包這種的已經(jīng)屬于競賽級別的

    2024年02月12日
    瀏覽(19)
  • 【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第四篇】手撕二叉樹遍歷

    【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第四篇】手撕二叉樹遍歷

    目錄 前言: 二叉樹遍歷方式: 手撕前中后序遍歷(遞歸)的三大準(zhǔn)備 深度優(yōu)先搜索:? 手撕前中后遍歷(遞歸): 手撕前中后序遍歷(迭代): 深度優(yōu)先搜索: 總結(jié): ? ? ? ? 今天我們將帶領(lǐng)大家手撕二叉樹的遍歷,本篇會分別講解深度優(yōu)先搜索法和廣度優(yōu)先有搜索法下

    2024年02月09日
    瀏覽(24)
  • 【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第七篇】時(shí)間復(fù)雜度與空間復(fù)雜度

    【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第七篇】時(shí)間復(fù)雜度與空間復(fù)雜度

    前言:? 引入:? 時(shí)間復(fù)雜度: ?案例: 空間復(fù)雜度: 案例: TIPS:? ? ? ? 總結(jié): ????????今天我們將來介紹時(shí)間復(fù)雜度和空間復(fù)雜度,我們代碼的優(yōu)劣就是依靠這個(gè)在評判,以此為背景,我們誕生出了不少的經(jīng)典思路:用時(shí)間換空間,用空間換取時(shí)間。而大多數(shù)同學(xué)

    2024年02月10日
    瀏覽(23)
  • 夜深人靜學(xué)32系列10——GPIO中斷/NVIC/EXTI/SYSCFG詳解,外部中斷控制LED

    夜深人靜學(xué)32系列10——GPIO中斷/NVIC/EXTI/SYSCFG詳解,外部中斷控制LED

    上期我們學(xué)習(xí)了GPIO驅(qū)動(dòng)數(shù)碼管/蜂鳴器/LED和按鍵等外設(shè),本期我們一起來學(xué)習(xí)STM32中斷的相關(guān)內(nèi)容 當(dāng)CPU正在處理某個(gè)事件的時(shí)候,外界發(fā)生了緊急事件請求,CPU需要暫停當(dāng)前的工作,轉(zhuǎn)而去處理這個(gè)緊急事件,處理完之后,再次回到之前被中斷的地方,繼續(xù)執(zhí)行原來的工作,

    2024年01月16日
    瀏覽(20)
  • 數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)內(nèi)容-----第二章算法

    算法 是指,解決問題或執(zhí)行任務(wù)的一系列步驟、規(guī)則或指令的有序集合。它可以用來解決各種不同的問題,例如搜索、排序、優(yōu)化、圖像和語音識別等。在計(jì)算機(jī)科學(xué)中,算法通常用于編寫程序以實(shí)現(xiàn)特定任務(wù)。算法可以被用于各種不同的領(lǐng)域,如人工智能、機(jī)器學(xué)習(xí)、數(shù)據(jù)

    2024年02月06日
    瀏覽(26)
  • [ 數(shù)據(jù)結(jié)構(gòu) -- 手撕排序算法第二篇 ] 冒泡排序

    [ 數(shù)據(jù)結(jié)構(gòu) -- 手撕排序算法第二篇 ] 冒泡排序

    手撕排序算法系列之:冒泡排序。 從本篇文章開始,我會介紹并分析常見的幾種排序,大致包括 插入排序 , 冒泡排序 ,希爾排序,選擇排序,堆排序,快速排序,歸并排序等。 大家可以點(diǎn)擊此鏈接閱讀其他排序算法:排序算法_大合集(data-structure_Sort) 本篇主要來手撕冒

    2024年02月11日
    瀏覽(96)
  • C++算法之旅、05 基礎(chǔ)篇 | 第二章 數(shù)據(jù)結(jié)構(gòu)

    常用代碼模板2——數(shù)據(jù)結(jié)構(gòu) - AcWing 使用結(jié)構(gòu)體指針,new Node() 非常慢,創(chuàng)建10萬個(gè)節(jié)點(diǎn)就超時(shí)了,做筆試題不會用這種方式(優(yōu)化是提前初始化好數(shù)組,但這樣跟數(shù)組模擬沒區(qū)別了,而且代碼量很長) 使用兩個(gè)數(shù)組,e存儲val,ne存儲next。空節(jié)點(diǎn)next用-1表示 826. 單鏈表 - AcWi

    2024年02月10日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包