⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 circlequeue.h

📁 把数据结构里面的双向队列实现了,可以方便大家用来学习。
💻 H
字号:
#include "stdafx.h"
#include <iostream>
using namespace std;

template <class type>
class circlequeue
{
private:
	int front,rear;
	type *queue;
	int maxsize;
public:
	circlequeue(int size=12);
	~circlequeue(){delete []queue;};
	bool Full();
	bool Empty();
	void EnQueue(const type &item);
	type DeQueue();
};
template <class type>
circlequeue<type>::circlequeue(int size = 12):front(0),rear(0),queue(NULL),maxsize(size)
{
	//queue=NULL;
	queue=new type[maxsize];
	if(queue==NULL)
	{
		cerr<<"动态存储分配失败"<<endl;
		exit(1);
	}
}
template <class type>
bool circlequeue<type>::Full()
{
	if((rear+1)%maxsize==front)
		return true;
	return false;
}
template <class type>
bool circlequeue<type>::Empty()
{
	if(rear==front)
		return true;
	return false;
}
template <class type>
void circlequeue<type>::EnQueue(const type &item)
{
	if(Full())
	{
		cerr<<"the queue is full,you can not enter!"<<endl;
		exit(1);
	}
	
	queue[rear]=item;
	rear=(rear+1)%maxsize;
	
}
template <class type>
type circlequeue<type>::DeQueue()
{
	if(Empty())
	{
		cerr<<"the queue is empty,you can not delete!"<<endl;
		exit(1);
	}
	type data;
	data=queue[front];
	front=(front+1)%maxsize;
	return data;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -