迴圈佇列(LoopQueue)

2021-10-04 22:28:37 字數 2230 閱讀 9447

**是在動態陣列的二次封裝,先閱讀體驗更佳: arrayqueue.h

#ifndef c___loopqueue_h

#define c___loopqueue_h

#include

"arrayqueue.h"

#include

template

<

typename t>

class

loopqueue

:public arrayqueue

;template

<

typename t>

loopqueue

::loopqueue()

template

<

typename t>

loopqueue

::loopqueue

(const

int capacity)

template

<

typename t>

int loopqueue

::getsize()

const

template

<

typename t>

int loopqueue

::getcapacity()

const

template

<

typename t>

bool loopqueue

::isempty()

const

template

<

typename t>

loopqueue::~

loopqueue()

template

<

typename t>

void loopqueue

::enqueue

(const t &e)

template

<

typename t>

void loopqueue

::resize

(const

int newcapacity)

data = newdata;

//陣列空間指向新陣列空間

tail =

getsize()

;//更新

front =0;

capacity = newcapacity;

newdata =

nullptr

;//新陣列指向空

delete

newdata;

//刪除新陣列

佇列 迴圈佇列

迴圈佇列是乙個大小確定的特殊佇列,它的特殊體現在迴圈,之前提到的普通佇列,我們是用鍊錶來實現的,在這裡,由於迴圈佇列是乙個長度確定的佇列,所以我們可以拿順序表來實現。迴圈佇列的操作與普通佇列類似,不過不同的地方在於當rear走到capacity 1並且front在0號元素位置的時候,當此時再有元素入...

迴圈佇列 622 設計迴圈佇列

設計你的迴圈佇列實現。迴圈佇列是一種線性資料結構,其操作表現基於fifo 先進先出 原則並且隊尾被連線在隊首之後以形成乙個迴圈。它也被稱為環形緩衝器。迴圈佇列的乙個好處是我們可以利用這個佇列之前用過的空間。在乙個普通佇列裡,一旦乙個佇列滿了,我們就不能插入下乙個元素,即使在佇列前面仍有空間。但是使用...

佇列(迴圈佇列 鏈佇列)

迴圈佇列 cirqueue.h 名稱 迴圈佇列 基於陣列 templateclass cirqueue q size 1 多申請乙個位置,保證隊滿 對空容易判定!cirqueue void enter datatype data 入隊操作 datatype shift 出隊操作 datatype g...