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

📄 queue.h

📁 C、C++语言实现的数据结构重要算法和程序 比较全。
💻 H
字号:
//Produce by George Lee         Feb. 22th, 2002

//--------------------------//
//                          //
//        顺序队列类        //
//                          //
//--------------------------//

#if !defined(_INC_Queue_OO)
#define _INC_Queue_OO

#include"stdlib.h"         //exit()
#include <iostream.h>


template<class T>
class Queue
{
private:
	T *data;
	int max;
	int front,rear,size;
public:
	Queue(int n=50);
	~Queue();
	int Size()const;
	int Empty()const;
	int Full()const;
	T GetData()const;
	void Insert(T item);
	T Delete();
	void Clear();
};

template<class T>
Queue<T>::Queue(int n)
{
	data=new T[n];
	max=n;
	front=0;
	rear=0;
	size=0;
}

template<class T>
Queue<T>::~Queue()
{
	delete[]data;
}

template<class T>
T Queue<T>:: GetData()const
{
	if(size==0)
	{cerr<<"Queue is empty"<<endl;
	 exit(1);
	}
	return(data[front]);
}

template<class T>
int Queue<T>::Size()const
{
	return(size);
}

template<class T>
int Queue<T>::Empty()const
{
	if(size==0)
		return(1);
	return(0);
}


template<class T>
int Queue<T>::Full()const
{
	if(size==max)
		return(1);
	return(0);
}

template<class T>
void Queue<T>::Insert(T item)
{
	if(size==max)
	{cerr<<"Queue is full!"<<endl;
	 exit(1);
	}
	data[rear]=item;
	rear=(rear+1)%max;
	size++;
}

template<class T>
T Queue<T>::Delete()
{
	T item;
	if(size==0)
	{ cerr<<"queue is empty !"<<endl;
	  exit(1);
	}
	item=data[front];
	front=(front+1)%max;
	size--;
	return(item);
}

template<class T>
void Queue<T>::Clear()
{
	front=0;
	rear=0;
	size=0;
}


#endif //_INC_Queue_OO

⌨️ 快捷键说明

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