C 實現迴圈佇列

2022-09-27 07:12:05 字數 2102 閱讀 5928

circularqueue.h

#pragma once

#pragma once

#ifndef circularqueue_h

#define circularqueue_h

#include

#include

using std::cout;

using std::cin;

using std::endl;

using std::ostream;

template class cirqueue;

template

class cirqueue

int getrear()

bool gettop(t& elem);//讀取佇列首個元素

template

friend ostream& operator<& queue);

private:

bool _full()const;//判斷佇列是否已滿

int maxsize;//佇列最大的空間

t* element;//存放於佇列中的元素陣列

int front;//模擬隊頭指標

int rear;//模擬隊尾指標};

template

cirqueue::cirqueue(int sz)

template

cirqueue::~cirqueue()

//進隊

template

void cirqueue::push(const t& elem)

else }

//出隊

template

void cirqueue::pop(t& elem)

else }

//檢視佇列是否為空

template程式設計客棧name t>

bool cirqueue::empty()

//返回佇列中元素的個數

template

int cirqueue::getsize()

//清空佇列中的元素

template

void cirqueue::clearqueue()

if (rear < front)

} }}

//列印佇列中的元素

template

void cirqueue::print()

} if (rear < index)

} } }}

//讀取佇列首個元素

template

bool cirqueue::gettop(t& elem)

return false;}

template

ostream& operator<& queue)

//判斷佇列是否已滿

template

bool cirqueue::_full()const

#endif // !circularqueue_h

main.cpp

#include"circularqueue.h"

int main()

cq.print();

cout << cq;

for (int i = 0; i < 20; i++)

cout << cq;//此時front=rear=19

cout << cq.getfront() << " " << cq.getrear() << endl;

//for (int i = 19; i < 25; i++)

// cq.push(19);

cq.print();

cout << cq.getfront() << " " << cq.getrear() << endl;

cout << endl << endl;

cq.push(20);

cq.gettop(a);

cout << a << endl;

cq.print();

cout << cq.getfront() << " " << cq.getrear() << endl;

return 1;

}本文標題: c++實現迴圈佇列

本文位址:

C 迴圈佇列實現

乙個迴圈佇列的c語言實現,資料型別queue定義如下,注意在typedef structqueue 中queue為資料型別,而在struct queue 中queue為乙個變數名。front為隊首元素下標,始終指向隊首元素,tail為隊尾元素的下乙個位置的下標。初始狀態為front tail 0 t...

陣列實現迴圈佇列 C 實現

file name aqueue.cpp function 陣列實現迴圈佇列 c 實現 陣列a 0 一端為head 1.當 head tail時為空 2.tail總指向 隊尾元素的下一位置 3.tail max head 1,也就是說,保留乙個元素空間 4.佇列最多有 max 1 個元素 5.當 t...

mysql迴圈佇列 C語言實現 迴圈佇列

include include include typedef struct queue int pbase 陣列 int front 頭 int rear 尾 rear不存放資料,所以rear前面的是最後乙個資料 queue void init queue queue pq bool full q...