資料結構演算法之棧

2021-07-23 13:30:08 字數 655 閱讀 4683

棧是資料結構中的重要演算法之一,又稱為堆疊,是一種受限制的資料結構,其受限制的地方是只能在結構的尾端進行插入和刪除操作。在可以操作的一端成為棧頂,通常設為top,在最先插入資料的地方成為棧底,當top=棧底就意味著棧空。棧的操作一般有:初始化棧(initstack),進棧(push),出棧(pop),判斷棧空(isempty)等等。

以下給出陣列實現堆疊的方法:

#include < iostream >

#define maxsize 10

typedef

int elemtype

typedef

struct _stack//棧的結構

stack;

bool initstack(stack *s)//初始化堆疊

bool isempty(stack *s)//判斷棧空

bool isfull(stack *s)//判斷棧滿

bool push(stack *s, elemtype data)//壓入棧

bool pop(stack *s, elemtype *data)//彈出棧

*data = s->arr[s->top];

-- s->top;

return

true;

}

《資料結構與演算法》之棧

資料結構與演算法 之鍊錶 資料結構與演算法 之佇列 資料結構與演算法 之排序 資料結構與演算法 之二分查詢 資料結構與演算法 之二叉樹 關於 棧 我有乙個非常貼切的例子,就是一摞疊在一起的盤子。我們平時放盤子的時候,都是從下往上乙個乙個放 取的時候,我們也是從上往下乙個乙個地依次取,不能從中間任意抽...

資料結構與演算法之棧

中綴表示式實現多位數的計算 實現 public class calculatordemo else 否則直接入符號棧 else 如果是數字直接入數棧 else else index if index expresion.length 表示式掃瞄完後就順序的從數棧和符號棧中pop出相應的數字和符號並執...

資料結構與演算法之棧

字首表示式 求值 從右至左掃瞄表示式,遇到數字時,將數字壓入堆疊,遇到運算子時,彈出棧頂的兩個數,用運算子對它們做相應的計算 棧頂元素 和 次頂元素 並將結果入棧 重複上述過程直到表示式最左端,最後運算得出的值即為表示式的結果 例如 3 4 5 6 對應的字首表示式就是 3 4 5 6 針對字首表示...