chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用棧結(jié)構(gòu)實現(xiàn)四則運(yùn)算的巧妙方法

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2025-02-07 11:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上個視頻寫了個簡易計算器,算個簡單的加減乘除還行,但是如果來個混合運(yùn)算,或者加個括號,這幾行代碼就差的太多了。

處理這種混合運(yùn)算,不得不提到數(shù)據(jù)結(jié)構(gòu)中的棧。

我們平時寫的這種表達(dá)式,叫做中綴表達(dá)式,非常符合人的正常思維,但是計算機(jī)計算的話不方便。

中綴表達(dá)式可以轉(zhuǎn)換成后綴表達(dá)式,這種表達(dá)式看起來抽象一些,但是不需要括號或者優(yōu)先級,計算機(jī)計算的話比較方便。

整個過程有點(diǎn)復(fù)雜,分的情況比較多,就以這個表達(dá)式為例。

首先是把中綴表達(dá)式轉(zhuǎn)換成后綴表達(dá)式,需要用到一個棧,來存放運(yùn)算符。

開始遍歷字符串。

遇到數(shù)字,直接寫下來。后面是加號,如果此時棧是空棧,符號直接進(jìn)棧;再往后,左括號,左括號直接進(jìn)棧;數(shù)字 1 直接寫下來;再往后是加號,如果棧頂是左括號,加號直接進(jìn)棧;1 寫下來;后面是右括號,右括號不用進(jìn)棧,此時讓加號出棧;左右括號遇到一起,可以讓左括號出棧,兩個括號直接丟掉就行;后面遇到乘號,因為乘號優(yōu)先級比加號高,乘號直接進(jìn)棧;2 寫下來;遇到減號,因為減號的優(yōu)先級不高于乘號,所以乘號出棧;減號的優(yōu)先級同樣不高于加號,加號出棧;此時棧變成空棧,減號入棧;最后把 1 寫下來;表達(dá)式遍歷結(jié)束,減號出棧。

這個表達(dá)式就是后綴表達(dá)式。

計算后綴表達(dá)式也需要一個棧,方法就是,遇到數(shù)字進(jìn)棧,遇到運(yùn)算符就出來兩個數(shù)字,運(yùn)算后把結(jié)果進(jìn)棧。

前面的 2 1 1 分別進(jìn)棧;遇到加號,1 和 1 出棧,計算得到 2 再進(jìn)棧;2 進(jìn)棧;遇到乘號,2 和 2 出棧計算得到 4,4進(jìn)棧;遇到加號,4 和 2 出棧,計算得到 6,6 進(jìn)棧;數(shù)字 1 進(jìn)棧;最后是減號,1 出棧,6 出棧,用后出棧的減去先出棧的,結(jié)果是 5,5進(jìn)棧。

最后留在棧里面的就是結(jié)果。

這個過程很復(fù)雜,寫代碼之前需要對各種情況分類。

這里直接貼出代碼,如果有需要,評論區(qū)留言代碼,我私信發(fā)你。

代碼寫出來后簡單的測試了幾個,沒什么問題,如果大家在使用中有什么問題,歡迎來交流。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)字
    +關(guān)注

    關(guān)注

    1

    文章

    1700

    瀏覽量

    52366
  • 運(yùn)算
    +關(guān)注

    關(guān)注

    0

    文章

    132

    瀏覽量

    26594

原文標(biāo)題:用棧實現(xiàn)四則運(yùn)算

文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何巧妙甚至避免單片機(jī)的干擾問題

    在電子設(shè)計中,干擾的存在一直是工程師最頭痛的,干擾會導(dǎo)致電路發(fā)生異常,重則導(dǎo)致產(chǎn)品無法正常使用,因此,必須要巧妙甚至避免干擾問題,是許多工程師的重中之重,今天本文將談?wù)剢纹瑱C(jī)如何避免。 需要
    發(fā)表于 11-26 06:48

    單片機(jī)串口調(diào)試的巧妙方法分享

    printf(\"%s %srn\" ,__DATE__ ,__TIME__ );//日期時間 printf(\"%s %s%dn\",__FILE__,__FUNCTION__,__LINE__);//文件名、函數(shù)名、行號 void DBG_STRING(char *title, void *pvbuff, unsigned int u32Len) { unsigned int i, j; unsigned char *pu8Buff = pvbuff; printf(\"%srn\", title); printf(\"%s\", pu8Buff); printf(\"n\"); } void DBG_HEX(char *title, void *pvbuff, unsigned int u32Len) { unsigned int i, j; unsigned char *pu8Buff = pvbuff; printf(\"%srn\", title); for (i = 0; i < u32Len; i++) { printf(\"%02X\", pu8Buff); } printf(\"n\"); }
    發(fā)表于 11-21 06:28

    在Keil5中查看大小

    :打開生成的.map文件,在Image Symbol Table部分查找的相關(guān)信息,包括的大小和使用情況。 3、利用IDE的功能: 方法說明:Keil編譯器在編譯過程中會自動跟蹤
    發(fā)表于 11-14 06:32

    第4章 C語言基礎(chǔ)以及流水燈的實現(xiàn)(4.3 4.4)

    4.3 C語言基本運(yùn)算符 小學(xué)數(shù)學(xué)學(xué)過加、減、乘、除等運(yùn)算符號以及四則混合運(yùn)算,而這些運(yùn)算符號在C語言中也有,但是有些表達(dá)
    的頭像 發(fā)表于 10-29 15:30 ?170次閱讀

    定點(diǎn)數(shù)表示實數(shù)的方法以及定點(diǎn)數(shù)在硬件上的運(yùn)算驗證

    本篇主要介紹定點(diǎn)數(shù)表示實數(shù)的方法以及定點(diǎn)數(shù)在硬件上的運(yùn)算驗證 為什么選定點(diǎn)數(shù) 32位單精度浮點(diǎn)數(shù): 32位的單精度浮點(diǎn)數(shù)為例,IEE754標(biāo)準(zhǔn)規(guī)定,一個flaot類型的浮點(diǎn)數(shù)X可以
    發(fā)表于 10-28 08:13

    浮點(diǎn)數(shù)是如何實現(xiàn)開平方運(yùn)算

    摘要: 本文主要描述浮點(diǎn)數(shù)是如何實現(xiàn)開平方運(yùn)算的。 簡介 事實上,浮點(diǎn)數(shù)的開平方運(yùn)算結(jié)構(gòu)與定點(diǎn)數(shù)甚至整數(shù)的開平方運(yùn)算
    發(fā)表于 10-24 08:42

    e203乘法運(yùn)算結(jié)構(gòu)及算法原理

    e203乘法部件結(jié)構(gòu) E203的乘法操作由一個17周期的乘法器實現(xiàn)。為了提升性能,該乘法器采用了基4Booth編碼,將乘數(shù)分解為17個Booth編碼,與被乘數(shù)相乘后形成的部分和再在相加,從而實現(xiàn)
    發(fā)表于 10-22 06:43

    e203 ALU乘法運(yùn)算結(jié)構(gòu)及算法原理

    e203乘法部件結(jié)構(gòu) E203的乘法操作由一個17周期的乘法器實現(xiàn)。為了提升性能,該乘法器采用了基4Booth編碼,將乘數(shù)分解為17個Booth編碼,與被乘數(shù)相乘后形成的部分和再在相加,從而實現(xiàn)
    發(fā)表于 10-22 06:12

    利用e203中NICE協(xié)處理器加速濾波運(yùn)算

    和加法器的方法來加速濾波運(yùn)算。 使用NICE協(xié)處理器加速的程序為一個長循環(huán),計算較長(100到1000量級)的兩個浮點(diǎn)數(shù)組乘累加的結(jié)果,分別命名為ifm (Input Feature Map
    發(fā)表于 10-21 13:40

    如何利用Trace機(jī)制實現(xiàn)LLCP預(yù)覽功能

    在藍(lán)牙協(xié)議開發(fā)過程中,有時需要預(yù)先知道 LLCP。本文將介紹如何利用 Trace 機(jī)制實現(xiàn) LLCP 預(yù)覽功能。
    的頭像 發(fā)表于 10-09 17:55 ?1479次閱讀

    深入淺出解析低功耗藍(lán)牙協(xié)議

    協(xié)議的實現(xiàn)代碼稱為協(xié)議(protocol stack),Bluetooth LE協(xié)議就是實現(xiàn)低功耗藍(lán)牙協(xié)議的代碼,理解和掌握Bluetooth LE協(xié)議是
    的頭像 發(fā)表于 04-09 14:49 ?979次閱讀
    深入淺出解析低功耗藍(lán)牙協(xié)議<b class='flag-5'>棧</b>

    三種藍(lán)牙架構(gòu)實現(xiàn)方案(藍(lán)牙協(xié)議方案)

    藍(lán)牙架構(gòu)實現(xiàn)方案有哪幾種?我們一般把整個藍(lán)牙實現(xiàn)方案叫做藍(lán)牙協(xié)議,因此這個問題也可以這么闡述:藍(lán)牙協(xié)議有哪些具體的架構(gòu)方案?在藍(lán)牙協(xié)議
    的頭像 發(fā)表于 04-08 15:35 ?1169次閱讀
    三種藍(lán)牙架構(gòu)<b class='flag-5'>實現(xiàn)</b>方案(藍(lán)牙協(xié)議<b class='flag-5'>棧</b>方案)

    數(shù)據(jù)中心能效困局怎么解?這份方案給出妙方

    數(shù)據(jù)中心能效困局怎么解?這份方案給出妙方
    的頭像 發(fā)表于 03-14 08:05 ?390次閱讀
    數(shù)據(jù)中心能效困局怎么解?這份方案給出<b class='flag-5'>妙方</b>

    巧妙利用電源變壓器

    電源變壓器的巧妙利用,使用電源變壓器的一些技巧。
    發(fā)表于 02-24 16:13 ?1次下載

    曙光云開啟全智能時代

    近日,“全可信 云中生智”曙光云戰(zhàn)略發(fā)布會召開。曙光云從首創(chuàng)“城市云”進(jìn)化到實現(xiàn)“全智能云”,打造“云智、云安、云算、云數(shù)”位一體能力體系,深度賦能千行百業(yè)數(shù)智化轉(zhuǎn)型升級。
    的頭像 發(fā)表于 12-19 15:11 ?895次閱讀