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

📄 04010.cpp

📁 用C++编写的《算法与程序设计》(王晓东版)的书中的数据结构类(全集)
💻 CPP
字号:
template <class T>
class Queue{
	public:
		Queue() {int Max=100;}
		~Queue(){delete[] queue;}
		bool Empty() const{return  front==rear;}				
		bool Full() const
		{ return (((rear+1)%MaxSize==front)?1:0);}
		T First() const;
		T Last() const;
		Queue<T> & EnQueue(const T& x);
		Queue<T> & DeQueue(T& x);
		void Type();
		struct Node
		{	 
		    T data;
		    Node *next;
		};
	private:
		Node *front; //队首结点指针
		Node *rear;  //队尾结点指针
		int LastOp;
};

template<class T>
Queue<T>::Queue(int Max)
{
	MaxSize=Max+1;
	queue=new T[MaxSize];
	front=rear=0;
}

template<class T>
T Queue<T>::First() const
{
	if(Empty()) cout<<"it is wrong";
	return queue[(front+1)%MaxSize];
}

template<class T>
T Queue<T>::Last() const	
{
	if(Empty())  out<<"it is wrong";
	return queue[rear];
}

template<class T>
Queue<T> & Queue<T>::EnQueue(const T& x)
{   
	if(Full())  out<<"it is wrong";
	rear=(rear+1)%MaxSize;
	queue[rear]=x;
	LastOp=1;
	return *this;
}

template<class T>
Queue<T> & Queue<T>::DeQueue(T& x)
{
	if(Empty()) cout<<"it is wrong";
    front=(front+1)%MaxSize;
	x=queue[front];
	LastOp=0;
	return *this;
}
template<class T>
void Queue<T>::Type()
{
    if(LastOp=1) out<<"it is Full";
	if(LastOp=0) out<<"it is Empty";
}

⌨️ 快捷键说明

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