📄 seqcqueue.h
字号:
//队列的线性算法
typedef struct
{
Data queue[MaxSize];
int front;
int rear;
int count;
}SeqCQueue;
void QueueInitiate (SeqCQueue *Q)
{
Q->count=0;
Q->front=0;
Q->rear=0;
return;
}
int QueueNotEmpty(SeqCQueue Q)
{
if(Q.count<=0)
return 0;
else return 1;
}
int QueueAppend(SeqCQueue *Q,Data x)
{
if(Q->count>0&&Q->rear==Q->front)//*
{
printf("队列已满\n");
return 0;
}
else{
Q->queue[Q->rear]=x;
Q->rear=(Q->rear+1)%MaxSize;
Q->count++;
return 1;
}
}
int QueueDelete(SeqCQueue *Q,Data *x)
{
if(Q->count<=0)
{
printf("队列已空\n");
return 0;
}
else {
*x=Q->queue[Q->front];
Q->front=(Q->front+1)%MaxSize;
Q->count--;
return 1;
}
}
int QueueGet(SeqCQueue Q,Data *x)
{
if(Q.count<=0)
{
printf("队列已空\n");
return 0;
}
else {
*x=Q.queue[Q.front];
return 1;
}
}
//注意:队列的特殊之自主,一般队列不用顺序线性结构来构造 ;因为它队尾进队头出的特点,
// 很容易造成{假溢出}的现象,故一般用循环顺序队列 ;而在这种循环的程序书写中要注意两点:
//1。当插入(删除)一个数据时不是直接将队尾(队头)指针加一,而是与最大内空间取模后加一;
//2。队空与不空最后都是队尾和队头指针重合,区分它们可有多种方法,最常用的是增设一个计数变量,来加以区分
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -