資料結構筆記 棧和佇列

2021-09-29 03:08:57 字數 2929 閱讀 3349

棧和佇列的特性,乙個是先進後出,乙個是先進先出。

對於棧來說,可以通過鍊錶或者陣列來進行實現 。

對於順序棧來說,**如下

//順序棧類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 基於陣列的儲存表示...