链队列的出队入队

#include
   
   
    
    
using namespace std;
struct Node{    //存放元素的结点类型,数据域和指针域
	int data;
	Node *next;
};
class LinkQueue
{
private:
	Node *front,*rear;    //头指针和尾指针
public:
	LinkQueue();
	~LinkQueue();
	void EnQueue(int e);   //入队
	int DeQueue();         //出队
	int GetQueue();         //取队头元素
	int Empty();              //判断链队列是否为空
};
                                        //成员函数的类外定义
LinkQueue::LinkQueue()
{       
	front=new Node;
	front->next=NULL;
	rear=front;
}

LinkQueue::~LinkQueue()
{
	Node *p;
	while(front!=NULL)
	{
		p=front;
		front=p->next;
		delete p;
	}
}
void LinkQueue::EnQueue(int e)
{                                 //新建一个结点,其数据域存放入队元素e,指针域置空
	Node *P=new Node;   //生成新元素结点
	P->data=e; //装入元素e
	P->next=NULL;//为队尾结点
	rear->next=P; //插入新结点
	rear=P;     //修改尾指针
}
int LinkQueue::DeQueue()
{                                   //把队头结点地址赋给p,头指针front下移,返回p结点的数据元素,
	if(front==rear) throw"队列为空";//无法删除
	Node *p=front->next;  //定义结点P指向要删除的队头结点
	front->next=p->next;//删除队头结点
	int e=p->data;//取出数据域的值
	if(rear==p) rear=front;
	free(p);
	return e;
}

int LinkQueue::GetQueue()//读取队头元素
{
	if(front==rear) throw"队列为空";
	return front->next->data;
}

int LinkQueue::Empty()
{
	if(front==rear) 
		return 1;
	else 
		return 0;
}
void main(){
	try{
		LinkQueue Q;     //对象
		try{
			cout<<"执行元素32入队操作,";
			Q.EnQueue(32);
		}catch(char *p){
			cout<
    
    
   
   





总结:注意数据结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值