2024.8.5

顺序队列(循环队列)

#include <stdio.h>
#include <stdlib.h>
#include "./3.h"

//创建
sequeue* create(void)
{
	sequeue* st=(sequeue*)malloc(sizeof(sequeue));
	if(st==NULL)
	{
		printf("失败\n");
		return NULL;
	}
	st->front=st->rear=0;
	return st;
}
//判满
int isfull(sequeue* st)
{
	return (st->rear+1)%N==st->front ? 1:0;
}
//入队
void insert(sequeue* st,hihi num)
{
	if(isfull(st)==1)
	{
		printf("失败\n");
		return;
	}
	st->data[st->rear]=num;
	st->rear=(st->rear+1)%N;
	return;
}
//判空
int isempty(sequeue* st)
{
	return st->rear==st->front ? 1:0;
}
//出队
hihi out(sequeue* st)
{
	if(isempty(st)==1)
	{
		printf("失败\n");
		return (hihi)-1;
	}
	hihi num=st->data[st->front];
	st->front=(st->front+1)%N;
	return num;
}
int count(sequeue* st)
{
	return(st->rear-st->front+N)%N;
}
//释放队列
void freee(sequeue** st)
{
	(*st)->rear=(*st)->front=0;
	free(*st);
	(*st)=NULL;
	return;
}
//遍历
void show(sequeue* st)
{
	for(int i=st->front;i!=st->rear;i=(i+1)%N)
	{
		printf("%d ",st->data[i]);
	}
	putchar(10);
	return;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值