總結學習棧與佇列

2021-09-29 09:41:37 字數 1406 閱讀 9838

棧和佇列都是特殊的線性表,對線性表的插入與刪除操作位置進行了限定。棧是一種先進後出的資料結構,只能在棧頂進行插入與刪除;佇列是一種先進先出的資料結構,只能在隊尾查入隊頭刪除。

與線性表一樣,棧和佇列都可以分別用順序儲存和鏈式儲存的形式實現。

1.棧的順序儲存結構實現

設定空棧標誌為棧頂指標top=-1,入棧top+1,出棧top-1。

template

class seqstack

;(1)入棧push

template

void seqstack :: push(datatype x)

(2)出棧pop

template

datatype seqstack :: pop( )

建構函式和析構函式與線性表的實現並沒有太大差異,不作贅述。

2.棧的鏈式儲存結構實現

首先定義節點

template

struct node

;template

class linkstack

;(1)入棧push

template

void linkstack :: push(datatype x)

(2)出棧pop

template

datatype linkstack :: pop( )

3.佇列的順序結構儲存實現

為了更好的利用記憶體空間,我們使用迴圈佇列實現佇列的順序儲存。並且同時設定隊首rear和隊尾front指標,通過取模實現邏輯上的迴圈。即隊滿標誌為(rear+1)%queuesize=front,其中queuesize為構建佇列時申請的陣列大小。隊空的標誌為rear=front。

const int queuesize = 100; //100是示例性資料,根據需要重新定義

template //定義模板類cirqueue

class cirqueue

;(1)建構函式

設定rear=front=queuesize-1,一般在陣列的高階。

(3)入隊enqueue

template

void cirqueue :: enqueue(datatype x)

(4)出隊dequeue

template

datatype cirqueue :: dequeue( )

4.佇列的鏈式儲存結構實現

struct node

;template

class linkqueue

;(1)入隊enqueue

template

void linkqueue :: enqueue(datatype x)

(2)出隊dequeue

template

datatype linkqueue :: dequeue( )

棧與佇列操作總結

c 有棧和佇列的函式 include include queue int q 定義int型別為例 stack int s stack 堆疊 是乙個容器類的改編,提供了堆疊的全部功能,也就是說實現了乙個先進後出 filo 的資料結構。操作比較和分配堆疊 empty 堆疊為空則返回真 pop 移除棧頂元...

棧與佇列 小總結

棧與佇列都是基於順序表和煉表來實現.棧 後進先出 佇列 先進先出 棧 入棧 把元素放到棧裡頭 出棧 把最後進來的元素給刪除掉 去棧頂元素 獲取到最後乙個進來的元素的結果 1 順序表 核心操作如下 使用順序表來實現棧 public class mystack data size val size 2....

棧與佇列操作總結

c 有棧和佇列的函式 include include queue int q 定義int型別為例 stack int s stack 堆疊 是乙個容器類的改編,提供了堆疊的全部功能,也就是說實現了乙個先進後出 filo 的資料結構。操作比較和分配堆疊 empty 堆疊為空則返回真 pop 移除棧頂元...