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

📄 queue.h

📁 lalr1编译器
💻 H
字号:
/***********************/
/*    Queue类的定义    */
/***********************/

const int QueueMaxSize=100;

template<class Type>
class Queue{
public:
	Queue(){count=0;front=rear=0;}
	~Queue(){front=rear=0;}
	int QueueEmpty(){return front==rear;}
	void QInsert(Type &item)        
	{
		if(count==QueueMaxSize)
		{
			cerr<<"Queue overflow!"<<endl;
			exit(1);
		}
		rear=(rear+1)%QueueMaxSize;				//queue[0]是不存放元素的
		queue[rear]=item;
		count++;
	}
	Type QDelete()             
	{
		if(count==0)
		{
			cerr<<"Queue is empty!"<<endl;
			exit(1);
		}
		front=(front+1)%QueueMaxSize;
		count--;
		return queue[front];
	}
	int Contains(Type &elem)
	{
		if(elem.IsEmpty()) return 0;
		for(int i=front;i<=rear;i++)
			if(queue[i]==elem)
				return 1;
		return 0;
	}
	int GetCode(Type elem)
	{
		for(int i=front+1;i<=rear;i++)
			if(queue[i]==elem)
				return i;
		return 0;
	}
	Type queue[QueueMaxSize];
	int front,rear;
	int count;
};

⌨️ 快捷键说明

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