判断队是否为空的函数c语⾔,C语⾔中循环队列的队满和队空的判断条件各是什么?有什么不同?...
队空时: Q.front == Q.rear;
队满时: Q.front == (Q.rear + 1) % MAXSIZE;
front指向队⾸元素,rear指向队尾元素的下⼀个元素。
maxsize是队列长度。
扩展资料:
实现的代码:
#include
#include
ppt结束语
#define MAXSIZE 100 //最⼤队列长度
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef int Status;
typedef struct {
经典古言
ElemType *ba; //队列空间
int front; //队头指针
int rear; //队尾指针,若队尾不为空,则指向队尾元素的下⼀个位置
}SqQueue;
//初始化循环队列
草原上的小木屋读后感Status initQueue(SqQueue &Q) {
摄氏零度
Q.ba = (ElemType *) malloc(MAXSIZE * sizeof(ElemType)); //申请空间锡伯族服饰
Q.front = Q.rear = 0; //队空
return OK;
三山四水}
//⼊队
Status enQueue(SqQueue &Q, ElemType e) {
if ((Q.rear + 1) % MAXSIZE == Q.front) return ERROR; //队满,⽆法添加Q.ar] = e; //插⼊元素
return OK;
面试坐姿}
//出队
Status deQueue(SqQueue &Q, ElemType &e) {
if (Q.front == Q.rear) return ERROR; //队空,⽆法删除
e = Q.ba[Q.front]
脸怎么样才能变白Q.front = (Q.front + 1) % MAXSIZE; //队头指针+1
return OK;
}
//返回队列长度
Status length(SqQueue &Q) {
return (Q.rear - Q.front + MAXSIZE) % MAXSIZE;
}