📄 queue2.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 + -