实验2:顺序链

#include<iostream>
using namespace std;
const int maxsize = 100;
template <class datatype>
struct Node
{
	datatype data;
	Node<datatype> *next;
};
template <class datatype>
class cirqueue
{
private:
	datatype data[maxsize];
	int front, rear;
public:
	cirqueue()
	{
		front = rear = maxsize - 1;
	}
	~cirqueue(){}
	void inqueue(datatype x)
	{
		if ((rear + 1) % maxsize == front)
			throw"上溢";
		rear = (rear+1)% maxsize;
		data[rear] = x;
	}
	datatype chuqueue()
	{
		if (rear == front) throw"下溢";
		front = (front + 1) % maxsize;
		return data[front];
	}
	datatype getqueue()
	{
		int i;
		if (rear == front) throw"下溢";
		i = (front + 1) % maxsize;
		return data[i];
	}
	int empty()
	{
		if (front == rear)
			return 1;
		else
			return 0;
	}

};


void main()
{
	cirqueue<int> q;
	if (q.empty())
		cout << "队列为空" << endl;
	else
		cout << "队列非空" << endl;
	cout << "元素10,20,30入队操作" << endl;
	try
	{
		q.inqueue(10);
		q.inqueue(20);
		q.inqueue(30);
	}
	catch (char* wrong)
	{
		cout << wrong << endl;
	}
	cout << "查看队头元素:" << endl;
	cout << q.getqueue()<< endl;
	cout << "执行出队操作"<<endl;
	try
	{
		q.chuqueue();
	}
	catch (char* wrong)
	{
		cout << wrong << endl;
	}
	cout << "查看队头元素:"<<endl;
	cout << q.getqueue()<< endl;
}

猜你喜欢

转载自blog.csdn.net/u011633428/article/details/80085948