数据结构——14 循环队列
Posted langtaol
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构——14 循环队列相关的知识,希望对你有一定的参考价值。
队列——循环队列
数组描述中,每次出队后,将其余元素往前移动一个位置,让a[0]始终是队的第一个元素
#include <iostream>
using namespace std;
class queue
public:
queue():maxSize(5),size(0) //构造函数初始化队列里元素的个数为0,并初始化队列可以装5个元素
a=new int[maxSize];
~queue(); //析构函数删除队列
int dequeue(); //出队
void enqueue(int n); //进对
private:
int size; //队列里元素的个数
int maxSize; //队列能装下的最大元素个数
int *a;
;
queue::~queue()
delete[] a; //析构,释放内存
void queue::enqueue(int n) //入队操作,增加一个元素放在队尾
if(size==maxSize) //如果数组装不下了,就增加10个位置
maxSize+=10;
int *p=new int[maxSize];
for(int i=0;i<=size;i++)
p[i]=a[i];
delete[] a;
a=p;
a[size++]=n;
int queue::dequeue() //出对操作,返回出队列第一个元素,即数组的a[0]
int out; //返回值
if(size) //用size判断是否栈里还有元素
out=a[0];
for(int i=0;i<size-1;i++)
a[i]=a[i+1];
size--;
return out;
else
cout<<"队列已经为空!"<<endl;
exit(0);
int main()
queue que;
cout<<"The enqueue of que are: ";
for(int i=1;i<=20;i++)
cout<<i<<" ";
que.enqueue(i);
cout<<endl;
cout<<"The dequeue of que are: ";
for(i=1;i<=15;i++)
cout<<que.dequeue()<<" ";
cout<<endl;
return 0;
以上是关于数据结构——14 循环队列的主要内容,如果未能解决你的问题,请参考以下文章