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

📄 queue.cpp

📁 这是关于二叉树的建立
💻 CPP
字号:
#include <iostream.h>
#include <malloc.h>
#include <stdlib.h>
#include "Queue.h"

//置空队
void InitQueue(LinkQueue *Q)
{
	Q->front = Q->rear = NULL;
}

//判队空
int QueueEmpty(LinkQueue *Q)
{
	return Q->front == NULL && Q->rear == NULL;
}

//入队
void EnQueue(LinkQueue *Q,QDataType x)
{//将元素x插入链队列尾部
//	QueueNode *p=(QueueNode *)malloc(sizeof(QueueNode));//申请新结点
	LinkQueue *p = new LinkQueue;
	p->data = x;
	p->rear = NULL;
	if(QueueEmpty(Q))
		Q->front = Q->rear = p;  //将x插入空队列
	else
	{ //x插入非空队列的尾
		Q->rear->rear = p;     //*p链到原队尾结点后
		Q->rear = p;           //队尾指针指向新的尾
	}
}

//出队
QDataType DeQueue (LinkQueue *Q)
{
	QDataType x;
	LinkQueue *p;
	if(QueueEmpty(Q))
	{
		cout<<"Queue underflow!";//下溢
		exit(1);
	}		
	else
	{
		p = Q->front;                   //指向对头结点
		x = p->data;                    //保存对头结点的数据
		Q->front = p->rear;             //将对头结点从链上摘下
		if(Q->rear == p)//原队中只有一个结点,删去后队列变空,此时队头指针已为空
			Q->rear = NULL;
		free(p);   //释放被删队头结点
		return x;  //返回原队头数据
	}
}

//取队头元素
QDataType QueueFront(LinkQueue *Q)
{
	if(QueueEmpty(Q))
	{
		cout<<"Queue if empty!";
		exit(1);
	}
	else
		return Q->front->data;
}

⌨️ 快捷键说明

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