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...