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

📄 queue.cpp

📁 二叉树的遍历操作
💻 CPP
字号:
#include "Operater Declare.h"

Status InitQueue(LinkQueue &Q)
{
	Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
	if(!Q.front) 
	{
		exit(OVERFLOW);

	}
	Q.front->next=NULL;
	return OK;

}

Status DestroyQueue(LinkQueue &Q)
{
	while(Q.front)
	{
		Q.rear=Q.front->next;
		free(Q.front);
		Q.front=Q.rear;

	}
	return OK;
}

Status EnQueue(LinkQueue &Q,QElemType e)
{
	//插入元素e为Q的新的队尾元素
    QueuePtr p;
	p=(QueuePtr)malloc(sizeof(QNode));
	if(!p)
	{
		exit(OVERFLOW);

	}
	p->data=e;
	p->next=NULL;
	Q.rear->next=p;
	Q.rear=p;
	return OK;

}

Status DeQueue(LinkQueue &Q,QElemType &e)
{
	//若队列不空,则删除Q的队头元素
	QueuePtr p;
	if(Q.front==Q.rear)
	{
		return ERROR;

	}
	p=Q.front->next;
	e=p->data;
	Q.front->next=p->next;
	if(Q.rear==p)
	{
		Q.rear=Q.front;

	}
	free(p);
	return OK;

}

void QueueTraverse(LinkQueue Q)
{
	QueuePtr p;
	p=Q.front->next;
	while(p)
	{
		printf("%d ",p->data);
		p=p->next;
	}
	printf("\n");
	return;
}

Status QueueEmpty(LinkQueue Q)
{
	if(Q.front == Q.rear) //如果队列是空的 
	{
		return OK;
	}//返回OK 
	else 
	{
		return ERROR; 
	}//返回ERROR 

}

⌨️ 快捷键说明

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