資料結構學習筆記 04 堆疊

2021-09-05 08:50:14 字數 1314 閱讀 2135

typedef

struct snode *stack;

struct snode

;

入棧

void

push

(stack ptrs,element item)

//入棧

else

}

出棧

element pop

(stack ptrs)

//出棧

else

}

例題

請用乙個陣列實現兩個堆疊,要求最大地利用陣列空間,使陣列只要有空間入棧操作就可以成功。

#define maxsize

struct dstack

s;s.top1=-1

;s.top2=maxsize;

入棧

void

push

(struct dstack *ptrs,elementtype item,

int tag)

//入棧

if(tag==1)

ptrs->data[

++(ptrs->top1)

]=item;

else

ptrs->data[

--(ptrs->top2)

]=item;

}

出棧

elementtype pop

(struct dstack *ptrs,

int tag)

else

return ptrs->data[

(ptrs->top1)--]

;}else

else

return ptrs->data[

(ptrs->top2)++]

;}}

typedef

struct snode *stack;

struct snode

;stack createstack()

//建立乙個頭節點,這個頭節點是空的並不放置任何元素

intisempty

(stack)

//判斷是否為空

void

push

(stack s,elementtype item)

//入棧

elementtype pop

(stack s)

//取出棧頂元素

}

資料結構學習筆記 堆疊

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

資料結構學習堆疊

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

資料結構學習筆記 棧

它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。p...