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

📄 queue2.h

📁 数据结构经典算法一书源代码和习题解答实现代码。
💻 H
字号:
//存为Queue2.h文件
#include <stdlib.h>
#define QueueSize  10   //为便与验证,这里假设为10个元素的空间
typedef char Datatype; //设元素的类型为char型
typedef struct {
	int front;
	int rear;
	Datatype Data[QueueSize];
}CirQueue;
void Error(char * message)
{
	fprintf(stderr, "Error: %s\n",message);
	exit(1);
}
void InitQueue ( CirQueue  *Q)
{	// 置空队
	Q->front=Q->rear=0;
}
int EmptyQueue( CirQueue *Q)
{	//判队空
	return Q->front==Q->rear;
}
int FullQueue( CirQueue *Q)
{	// 判队满//如果尾指针加1后等于头指针,则认为满
	return (Q->rear+1)%QueueSize== Q->front;
}
Datatype DeQueue( CirQueue *Q)
{	//出队
	Datatype temp;
	if(EmptyQueue(Q))
		Error("队已空,无元素可以出队");
	temp=Q->Data[Q->front] ;//保存元素值
	Q->front= ( Q->front+1 ) %QueueSize;//循环意义上的加1
	return  temp; 	//返回元素值
}
void EnQueue (CirQueue *Q, Datatype x)
{ 	// 入队
	if( FullQueue( Q))
		Error ("队已满,不可以入队");
	Q->Data[Q->rear]=x;	
	Q->rear=(Q->rear+1)%QueueSize; //rear 指向下一个空元素位置
}
Datatype FrontQueue( CirQueue *Q)
{	//取队头元素
	if (EmptyQueue( Q))
		Error( "队空,无元素可取");
	return Q->Data[Q->front];
}

⌨️ 快捷键说明

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