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

📄 队列.cpp

📁 用C++做的队列
💻 CPP
字号:
#include<iostream.h>
class listnode
{
public:
	int data;
    listnode *next;
	listnode(const int &itemval,listnode *ptr=NULL)
	{
		data=itemval;
		next=ptr;
	}
};
class queue//带表头
{
public:
	listnode *front;
	listnode *rear;
public:
	queue(void)
	{
		listnode *p;
		p=new listnode(NULL,NULL);
		front=rear=p;
	}
	void enqueue(int x);//入列操作:ok
	int delqueue(void);//出列操作:ok
	int getfront(void);//取队头元素:ok
	int isempty(void)//判队空:ok
	{
		if(front==rear) return 1;
		else return 0;
	}
	void clear(void);//清队空:ok
	void print(void);//输出队列
};
void queue::enqueue(int x)//在链尾插入结点
{
	listnode *p;
	p=new listnode(x,NULL);
	rear->next=p;
	rear=p;
}
int queue::delqueue(void)
{
	int x;
	listnode *p;
	if(front==rear)
	{
		cout<<"underflow"<<endl;
		return 0;
	}
	p=front->next;
	x=p->data;
	front->next=p->next;
	if(p==rear)
		rear=front;
	delete p;
	return x;
}
int queue::getfront(void)
{
	if(front==rear)
	{
		cout<<"isempty!"<<endl;
		return 0;
	}
	return front->next->data;
}
void queue::clear(void)
{
	listnode *p,*q;
	q=front->next;
	while(q!=rear)
	{
		p=q;
		q=q->next;
		delete p;
	}
	p=q->next;
	delete p;
	rear=front;
}
void queue::print()
{
	listnode *p;
	p=front;
	while(p!=rear)
	{
		p=p->next;
		cout<<p->data<<" ";
	}
}
void main()//测试
{
	queue a;
	int i,j,k;
	cin>>i>>j>>k;
	a.enqueue(i);
	a.enqueue(j);
	cout<<endl<<a.isempty()<<endl;
	a.enqueue(k);
	a.delqueue();
	a.print();
	a.delqueue();
	a.clear();
	a.delqueue();
	cout<<endl<<a.isempty()<<endl;
}



	
		

⌨️ 快捷键说明

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