顺序队列的初始化、进队和出队(C语言)

  • Post author:
  • Post category:其他




队列是一种操作受限制的线性表,限制仅仅允许在表的一端插入,另一端删除


队尾:可以插入的一端

队头:可进行删除的一端

记忆:队列就像一列在隧道里的高铁

在这里插入图片描述


顺序队列的定义

#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;
}



复习笔记!



祝大家生活愉快!!!