linkqueue.cpp

来自「实现图的广度优先遍历:数据结构课程设计」· C++ 代码 · 共 40 行

CPP
40
字号
#include"LinkQueue.h"
bool initQueue(LinkQueue &Q)
{
	//构造一个带头节点的空队列(以链表表示)
	Q.front =Q.rear =(QueuePtr)malloc(sizeof(QNode));
	if(!Q.front) return false;	//分配节点失败
	Q.front ->next =NULL;
	return true;
}
bool queueEmpty(LinkQueue Q)
{
	//判断队列是否为空。若为空,返回true;否则返回false
	if(Q.rear ==Q.front )
		return true;
	else
		return false;
}
bool EnQueue(LinkQueue &Q, QElemType e)
{
	//插入新的元素
	QNode *node=(QNode *)malloc(sizeof(QNode));
	if(!node) return false;
	node->next =NULL;
	node->data =e;
	Q.rear ->next =node;
	Q.rear =Q.rear ->next ;
	return true;
}
bool DeQueue (LinkQueue &Q,QElemType &e)
{
	//若队列不空,将对头元素赋值给e,并删除对头元素
	if(Q.front==Q.rear )	return false;
	QueuePtr q=Q.front->next ;
	e=q->data ;
	Q.front ->next =q->next ;
	if(Q.rear==q)Q.rear =Q.front ;	//队列中只有一个节点
	free(q);
	return true;
}

⌨️ 快捷键说明

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