队列是一种操作受限制的线性表,限制仅仅允许在表的一端插入,另一端删除
队尾:可以插入的一端
队头:可进行删除的一端
记忆:队列就像一列在隧道里的高铁
顺序队列的定义
#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef struct
{
int data[maxsize];
int front;//队首
int rear;//队尾
}sqQueue;
知识点:
队空时条件front=(front+1)%maxsize
初始化队列
void initqueue(sqQueue &qu)
{
qu.front=qu.rear=0;
}
判断队空
int isqueueempty(sqQueue qu)
{
if(qu.front==qu.rear)
return 1;
else
return 0;
}
进队
int enqueue(sqQueue &qu,int x)
{
if((qu.rear+1)%maxsize==qu.front)
return 1;
qu.rear=(qu.rear+1)%maxsize;//队列未满先移动指针
qu.data[qu.rear]=x;//存入元素
return 1;
}
出队
int dequeue(sqQueue &qu,int &x)
{
if(qu.front==qu.rear)
return 0;//队列空不出
qu.front=(qu.front+1)%maxsize;
x=qu.data[qu.front];
return 1;
}
复习笔记!
祝大家生活愉快!!!