有關堆疊的問題

2021-10-05 21:53:42 字數 1508 閱讀 4677

首先我們先引入字尾表示式:6 2 / 3 - 4 2 × +

我們把它放到堆疊裡面執行一遍

首先我們從左向右掃瞄,遇到6和2,它們放入棧中

然後遇到除號,計算6除以2,得到3,放入棧中

然後遇到3,放入棧中

繼續向右,遇到減號,計算3-3,將結果放入棧中

依次操作得到結果 8

通過上面的例子,我們可以看出堆疊可以很好的處理好這種字尾表示式,那麼我們用中綴表示式如何轉換為字尾表示式呢?

例:a×(b+c)/ d

首先我們遇到從左向右掃瞄,遇到數字輸出,遇到乘號入棧

然後我們遇到左括號,入棧;遇到b,輸出;遇到加號, 入棧;遇到c,輸出

那麼符號入棧,出棧的標準是什麼?

然後我們可以得到

這裡我不作講解,直接用題目來表示含義

這裡最大的誤區是把 3 成棧頭,那麼得到結果就會是(2),但我們要注意的是堆疊的插入和刪除操作只能在鏈棧的棧頂進行(鏈式儲存),所以不能把 3 當成棧頭,因為把 3 當成棧頭後,執行刪除操作時,無法判斷下個元素(因為是單向鍊錶)

這樣我們可以得出答案(1)

下面我們來看這樣乙個問題

這裡我們要注意的是,儲存方式是順序的,所以date和date【n-1】都可成為棧底

堆疊的特點:先進後出

當top為-1時,代表堆疊為null

當往堆疊插入乙個元素時,top+1;當往堆疊刪除乙個元素時,top-1

若以鏈棧為形式儲存時,首先要判斷其棧頂位置

」堆疊「的有關筆記

在計算機領域,堆疊是乙個不容忽視的概念,但是很多人甚至是計算機專業的人也沒有明確堆疊其實是兩種資料結構。堆疊都是一種資料項按序排列的資料結構,只能在一端 稱為棧頂 top 對資料項進行插入和刪除。要點 堆,順序隨意。棧,後進先出 last in first out 兩種 堆疊 的對比 棧 作業系統 ...

js堆疊問題

在日常開發中常有這樣乙個需求 初始化多個變數為預設值,如下 let defaultval 0 var numone defaultval var numtwo defaultval numone 2 numtwo 5 console.log numone,numtwo 結果2,5 對於上面這個 兩個...

sqlbox的有關問題

1.先裝ensemble 2010.2.8.1104 再裝sqldbx 應用程式可以使用sqlsetenvattr來啟用連線池。當odbc應用程式呼叫sqldisconnect初次,該連線儲存到池。任何後續sqlconnect sqldisconnect匹配必需條件將重用第乙個連線。3 3 sqld...