熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構考研分類復習真題 第三章 答案[9]

2013-11-15 15:00:50  來源: 數據結構 

  中綴表達式轉為後綴表達式的規則基本上與上面題相同不同之處是對運算符**優先級的規定在算術運算中先乘除後加減先括號內後括號外相同級別的運算符按從左到右的規則運算而對**運算符其優先級同常規理解即高於加減乘除而小於左括號為了適應本題中從右到左計算的要求規定棧頂運算符**的級別小於正從表達式中讀出的運算符**即剛讀出的運算符**級別高於棧頂運算符**因此也入棧

  下面以A**B**C為例說明實現過程

  讀入A不是操作符直接寫入結果表達式再讀入*這裡規定在讀入*後不能立即當乘號處理要看下一個符號若下個符號不是*則前個*是乘號這裡因為下一個待讀的符號也是*故認為**是一個運算符與運算符棧頂比較(運算符棧頂初始化後首先壓入#作為開始標志)其級別高於#入棧再讀入B直接進入結果表達式接著讀入**與棧頂比較均為**我們規定後讀入的**級別高於棧頂的**因此**入棧接著讀入C直接到結果表達式現在的結果(後綴)表達式是ABC最後讀入#表示輸入表達式結束這時運算符棧中從棧頂到棧底有兩個**和一個#兩個運算符**退棧至結果表達式結果表達式變為ABC****運算符棧中只剩#退棧運算結束

  )sum=當x為局部變量時每次遞歸調用都要給局部變量分配存儲單元故x數值均保留其遞歸過程示意圖如下

  () sum=當x為全局變量時在程序的整個執行期間x只占一個存儲單元先後讀入的個數()僅最後一個起作用當遞歸調用結束逐層返回時sum:=sum(n)+x表達式中x就是所以結果為sum=

[]  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/sjjg/201311/22714.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.