队列的顺序存储结构算法——C语言版

队列的顺序存储结构算法——C语言版

队列包括栈的头尾指针就是形象的指针,并不是实际的指针


进队:头指针不动,尾指针变化,这是因为队列入队是头不变一直是尾巴变
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码实现:

#include<stdio.h>
#include<stdlib.h>
#define MaxSize 10
typedef struct A
{
	int data[MaxSize];
	int font, rear;
}A;
void chushihua(A& a)
{
	a.rear = a.font = 0;
}
bool panduan(A& a)
{
	if (a.font == a.rear) return true;
	else return false;
}
//增
bool charu(A& a,int r)
{
	if ((a.rear+1)%MaxSize==a.font)return false;
	a.data[a.rear] = r;
	//a.rear++;
	a.rear=(a.rear + 1) % MaxSize;
	return true;

}
//删
bool chudui(A& a, int &t)
{
	if (a.rear == a.font)return false;
	t = a.data[a.font];
	a.font = (a.font + 1) % MaxSize;//这样才可以让front指针转着圈圈移动
	return true;
}
//查
bool cha(A a, int &f)
{
	if (a.font == a.rear)return false;
	f = a.data[a.font];
	return true;
}
//查找一共有多少个元素
int zonggong(A a)
{
	return (a.rear + MaxSize - a.font) % MaxSize;
	
}
int main()
{
	A a;
	chushihua(a);
	for (int i = 1; i < 11; i++)
	{
		/*if (panduan(a)) printf("表是空的\n");
		else printf("表不是空的\n");*/
		if (charu(a,i)) printf("插入成功\n");
		else printf("队满了\n");
	}
	int zong = zonggong(a);
	printf("%d\n", zong);
	int f = 0;
	if (cha(a,f)) printf("%d\n",f);
	int t = 0;
	if (chudui(a,t)) printf("出队了:%d\n",t);
	if (chudui(a, t)) printf("出队了:%d\n", t);
	if (chudui(a, t)) printf("出队了:%d\n", t);
	for (int i = 101; i < 105; i++)
	{
		/*if (panduan(a)) printf("表是空的\n");
		else printf("表不是空的\n");*/
		if (charu(a, i)) printf("插入成功\n");
		else printf("队满了\n");
	}

	return 0;
}


在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值