棧和佇列的特性,乙個是先進後出,乙個是先進先出。
對於棧來說,可以通過鍊錶或者陣列來進行實現 。
對於順序棧來說,**如下
//順序棧類seqstack的類定義
const int stacksize = 10; //10是示例性的資料,根據實際問題具體定義
template //定義模板類seqstack
class seqstack
;
//順序棧類seqstack的建構函式和析構函式
template seqstack:: seqstack()
template seqstack:: ~seqstack()
//順序棧類seqstack的入棧操作
template void seqstack:: push(datatype x)
//順序棧類seqstack的出棧操作
template datatype seqstack:: pop( )
//順序棧類seqstack的判空操作
template int seqstack:: empty()
//順序棧類seqstack的取棧頂操作
template datatype seqstack:: gettop( )
而另外的一種,鏈棧,則是
//鏈棧類linkstack的類定義
template struct node
;template class linkstack
;
//鏈棧類linkstack的建構函式
template linkstack:: linkstack()
// 鏈棧類linkstack的析構函式
template linkstack:: ~linkstack()
}
//鏈棧類linkstack的入棧操作
template void linkstack:: push(datatype x)
//鏈棧類linkstack的出棧操作
template datatype linkstack:: pop( )
//鏈棧類linkstack的取棧頂操作
template datatype linkstack:: gettop()
//鏈棧類linkstack的判空操作
template int linkstack:: empty()
同樣的對於佇列也有順序儲存和鏈式儲存兩種方式
順序儲存
//迴圈佇列類cirqueue的類定義
const int queuesize = 100; //100是示例性資料,根據需要重新定義
template //定義模板類cirqueue
class cirqueue
;
//迴圈佇列類cirqueue的建構函式
template cirqueue:: cirqueue()
//迴圈佇列類cirqueue的析構函式
template cirqueue:: ~cirqueue()
//迴圈佇列類cirqueue的入隊操作
template void cirqueue:: enqueue(datatype x)
//迴圈佇列類cirqueue的出隊操作
template datatype cirqueue:: dequeue( )
//迴圈佇列類cirqueue的取隊頭操作
template datatype cirqueue:: getqueue( )
//迴圈佇列類cirqueue的判空操作
template int cirqueue:: empty()
鏈式儲存
//鏈佇列類linkqueue的類定義
template struct node
;template class linkqueue
;
//鏈佇列類linkqueue的建構函式
template linkqueue:: linkqueue( )
//鏈佇列類linkqueue的析構函式
template linkqueue:: ~linkqueue()
}
//鏈佇列類linkqueue的入隊操作
template void linkqueue:: enqueue(datatype x)
//鏈佇列類linkqueue的出隊操作
template datatype linkqueue:: dequeue( )
//鏈佇列類linkqueue的取隊頭操作
template datatype linkqueue:: getqueue()
//鏈佇列類linkqueue的判空操作
template int linkqueue:: empty()
資料結構筆記 棧和佇列
1 棧1.1 棧基本概念 出棧和入棧 棧的本質是乙個線性表,線性表有兩種儲存形式,那麼棧也有分為棧的順序儲存結構和棧的鏈式儲存結構 最開始棧中不含有任何資料,叫做空棧,此時棧頂就是棧底。資料從棧頂進入,棧頂棧底分高,整個棧的當前容量變大 資料出棧時從棧頂彈出,棧頂下移,整個棧的當前容量變小 1.2 ...
資料結構 棧和佇列筆記
2.鏈棧 棧的應用 二 佇列 2.鏈式隊 總結棧又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它...
資料結構預習筆記(棧和佇列)
1.棧的定義 棧是限制僅在表的一端進行插入和刪除運算的線性表又稱為 後進先出表 lifo表 插入 刪除端稱為棧頂,另一端稱棧底 表中無元素稱空棧。2 棧的邏輯結構和儲存表示 棧的邏輯結構和線性表相同。棧的抽象資料型別有兩種典型的儲存表示 基於陣列的儲存表示和基於鍊錶的儲存表示。1 基於陣列的儲存表示...