資料結構學習 堆疊的動態陣列實現及鍊錶實現

2022-10-11 08:45:12 字數 918 閱讀 5157

堆疊

【鍊錶實現堆疊】

優點:可以無限增添元素,只要記憶體足夠,

缺點:記憶體中儲存位置不連續

typedef int elementtype;

//只能向頭部插入元素,因為如果在尾部插入,刪除時,找不到上乙個節點/

//因為鍊錶是單向的

//所以 push pop 操作在頭結點進行

class stack

bool empty()

int size()

void push(elementtype x)

elementtype pop()

} private:

int date;

stack* next;

stack* s;

int sz;//記錄棧中元素個數

}stack;

【動態陣列實現堆疊】

好處:申請了連續的記憶體空間,而且可以無限增添元素(記憶體足夠)

初始化用malloc函式為動態陣列分配maxn個空間,

s=(elementtype*)malloc(maxn*sizeof(elementtype));

如果陣列滿了,用realloc函式,重新分配空間,多分配乙個maxn;

if(top+1>=maxn*n)

整體**

const int maxn = 10;

typedef int elementtype;

class stack

bool empty()

int size()

void push(elementtype x)

s[++top]=x;

}elementtype pop(){

if(empty()){

cout<<"堆疊空"<

資料結構學習堆疊

走迷宮程式 原理是來自於 資料結構 c語言 清華大學出版社關於堆疊的章節。具體的實現 是自己寫的。目前有一些還沒有完善的地方 1 不知道是為什麼處理時會出現地圖座標的x,y對調的情況。通過修改讀入和輸出的資訊糊弄過去orz。2 不能成功查詢時,返回時空指標 設計時是這樣的 可是不能輸出notfoun...

資料結構學習之 堆疊

堆疊 順序儲存 define maxsize 10 typedef int elemtype struct stack 1.判斷堆疊是否為空 int emptyst struct stack s 2.判斷堆疊是否已滿的函式 int fullst struct stack s 3.元素入棧 void ...

資料結構學習筆記 堆疊

型別名稱 堆疊 stack 資料物件集 乙個有0個或多個元素的有窮線性表 操作集 長度為maxsize的堆疊s stack,堆疊元素item elementtype stack createstack int maxsize 生成空堆疊,最大長度maxsize int isfull stack s,...