📄 queue.h
字号:
#ifndef QUEUE_H
#define QUEUE_H
#include<stdio.h>
#include<stdlib.h>
#define MaxQueueSize 100
struct Queue
{
Type data[MaxQueueSize];
int size; //记录数据元素个数
int front,rear; //头指针和尾指针
};
void SetQueue(Queue *q); //构造函数,赋初值。size,front和rear都赋值0
int QSize(const Queue *q); //求数据元素个数
int QEmpty(const Queue *q); //判空
int QFull(const Queue *q); //判满
Type QFront(const Queue *q); //取队头元素
void QPush(Queue *q,Type item); //入队。插入队尾
Type QPop(Queue *q); //出队。删除队头元素
void QClear(Queue *q); //清队
void QError(const char *c); //错误信息处理(Error handling method)
void SetQueue(Queue *q) //构造,赋初值
{
q->size=0; q->front=0; q->rear=0;
}
int QSize(const Queue *q) //求数据元素个数
{
return(q->size);
}
int QEmpty(const Queue *q) //判空
{
return(q->size==0);
}
int QFull(const Queue *q) //判满
{
return(q->size==MaxQueueSize);
}
Type QFront(const Queue *q) //取队头元素
{
if(q->size==0)
QError("QGetData:Queue is Empty!");
return(q->data[q->front]);
}
void QPush(Queue *q,Type item)//插入队尾
{
if(q->size==MaxQueueSize)
QError("QInsert:Queue is full!");
q->data[q->rear]=item;
q->rear=(q->rear+1)%MaxQueueSize;
q->size++;
}
Type QPop(Queue *q)//删除队头元素
{
Type item;
if(q->size==0)
QError("QDelete:Queue is Empty!");
item=q->data[q->front];
q->front=(q->front+1)%MaxQueueSize;
q->size--;
return(item);
}
void QClear(Queue *q)//清队
{
q->size=0; q->front=0; q->rear=0;
}
void QError(const char *c)//错误信息处理
{
printf("%s",c); exit(1);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -