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

📄 circlequeue.cpp

📁 图的邻接表存储实现
💻 CPP
字号:
#include"common.h"

#include"CircleQueue.h"
#include<stdlib.h>
status InitQueue (SqQueue &q) //构造一个空队列q
{ 
	q.base=(ElemType*)malloc(MAXQSIZE *sizeof(ElemType));
	if(!q.base)exit(1);
	q.flag=1;
	q.front = q.rear=0;
	return (1);
}

status EnQueue(SqQueue &q,ElemType x)      /*入队列*/
{
	if(QueueFull(q))
		return(0);
	q.base[q.rear]=x;
	q.rear=(q.rear+1)% MAXQSIZE;
	if(q.rear==q.front) 
		q.flag=0;  
	return(1);
}


status DeQueue(SqQueue &q,ElemType &e)       /*出队列*/
{ 
  if(QueueEmpty(q)) 
	  return(0);
  e= q.base[q.front]; 
  q.front=(q.front+1)%MAXQSIZE;
  if(q.front==q.rear) 
	  q.flag=1;
  return(1);
}

int QueueLength(SqQueue q)
{
	if(QueueEmpty(q))
		 return 0;
	else
		 return (q.rear-q.front+MAXQSIZE)%MAXQSIZE;
}


bool QueueEmpty(SqQueue q)
{
	return q.flag==1;
}

bool QueueFull(SqQueue q)
{
	return q.flag==0;
}


// 队列长度
status ClearQueue (SqQueue &q)
{
	q.rear=q.front=0;
	q.flag=1;
	return 1;
}
//判断队列是否为空
status DestroyQueueEmpty(SqQueue &q)
{
	free(q.base);
	return 1;
}
//取对头元素
status GetHead(SqQueue q,ElemType &e)
{
	if(!QueueEmpty(q))
		{
			e=q.base[q.front];
			return 1;
		}
	else
		return 0;
}




⌨️ 快捷键说明

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