【数据结构之循环队列】

首先当然是头文件啦
#include<stdio.h>
typedef int ElemType;
#define MAX_SIZE 9
typedef struct Queue
{
ElemType arr[MAX_SIZE];
int front;
int rear;
}Queue,*pqueue;
void init(pqueue ptr);
int full(pqueue ptr);
int enqueue(pqueue ptr,ElemType val);
int empty(pqueue ptr);
int front(pqueue ptr);
int rear(pqueue ptr);
函数的声明
#include"Queue.h"

void init(pqueue ptr) //初始化循环队列
{
if(ptr!=NULL)
{
ptr->front=ptr->rear=0;//队列的前指针和后指针相等并且都为0号下标即为初始化
}
}
int full(pqueue ptr)//判满循环队列
{
return (ptr->rear+1)%MAX_SIZEptr->front?1:0;
}
int enqueue(pqueue ptr,ElemType val)//插入一个队列并数据置为val
{
if(full(ptr))
{
return 0;
}
ptr->arr[ptr->rear]=val;
ptr->rear=(ptr->rear+1)%MAX_SIZE;
return 1;
}
int empty(pqueue ptr)//判空队列
{
return ptr->rear
ptr->front?1:0;
}
int dequeue(pqueue ptr)//出队列 也就是单纯的删除队列元素
{
if(empty(ptr))
{
return 0;
}
return ptr->front=(ptr->front+1)%MAX_SIZE;
}
int front(pqueue ptr)//获取front的元素
{
if(empty(ptr))
{
return 0;
}
return ptr->arr[ptr->front];
}
int rear(pqueue ptr)//获rear的元素
{
if(empty(ptr))
{
return 0;
}
return ptr->arr[(ptr->rear)%MAX_SIZE-1];
}
**测试来咯来咯
**#include<stdio.h>

#include"Queue.h"
int main()
{
Queue que;
init(&que);

for(int i=0;i<8;i++)
{
	enqueue(&que,i+1);
}
int rtfront=front(&que);
int rtback=rear(&que);
printf("%d\n",rtfront);
printf("%d\n",rtback); 
return 0;

}在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值