本實驗取材於浙江大學《資料結構》,很多人都說堆疊的先進後出和佇列的先進先出讓人搞糊塗,但是只要認真理解,還是能看懂一丟丟的!加油實踐
//堆疊的兩個方向生長的原始碼
#include
#include
#define false -1
#define error -1
#define true 1
#define maxsize1 10
typedef
int position;
typedef
int elementtype;
typedef
int boolean;
typedef
struct snode *ptrtosnode;
struct snode
;typedef ptrtosnode stack;
boolean push
(stack s,elementtype x,
int tag)
else
else
return
true;}
}elementtype pop
(stack s,
int tag)
else
return s-
>data[
(s->top1)--]
;}else
else
return s-
>data[
(s->top2)++]
;}}int
main()
堆疊最著名的還是壓入和彈出,在堆疊的雙向生長中,什麼是壓入呢,首先看你要壓入**
top2是指向maxsize也就是陣列的尾部,top是-1也是陣列的頭部,雙向生長就是乙個陣列對半分,同時往中間進行壓棧,當top1與top2相差乙個1時,也就是相遇了,那就說明堆疊滿了,跳出來喲,不然就是壓入堆疊1,top++,壓入堆疊2,top–,壓入堆疊.
彈出資料呢,同理,判斷是否為空,什麼是空,也就是top2指向陣列尾部,top1指向-1.也就是為空了,這樣肯定是空的。堆疊1彈出,top1–,堆疊2彈出top2++.
c語言 堆疊計算字尾表示式 包含測試用例
本實驗取材於浙江大學 資料結構 計算字尾表示式,關鍵在於理解堆疊的工作順序 堆疊的應用案例 表示式求值 表示式求值的基本步數 1當讀入的是乙個運算數時,把它被壓入棧中 2當讀入的是乙個運算子時,就從堆疊中彈出適當數量的運算數 對該運算進行計算,計算結果再壓回到棧中。處理完整個字尾表達時之後,堆疊頂上...
C語言 堆疊順序儲存原始碼 包含測試
本實驗 於姥姥主編 資料結構 第2版 內容也沒有很難,就是按照一般初學者聽課的視角去敲 千里之行始於足下。堆疊的順序儲存 include include define error 1 typedef int position typedef struct snode ptrtostack typed...
c語言 堆疊鏈式儲存原始碼 包含測試
本試驗取材於姥姥 資料結構 第2版 堆疊的鏈式儲存主要是在鍊錶的基礎上實現,大家千萬不要覺得恐懼,認真的敲,認真的實現,其實一點都不能!加油,努力幹,頭髮會有的!堆疊的鏈式儲存 include include define error 1 typedef int position typedef s...