queue.h

来自「lalr1编译器」· C头文件 代码 · 共 53 行

H
53
字号
/***********************/
/*    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 + =
减小字号Ctrl + -
显示快捷键?