1月11日 操作系统 周四

本文介绍了一种使用C语言实现循环队列和普通队列的方法。通过定义结构体来存储队列元素,并提供了入队和出队操作。循环队列利用了固定大小的数组,通过取余运算实现了队尾指针的循环移动;普通队列则使用数组的末尾作为队尾。每种队列都包含了判断队满和队空的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作系统
1月11日 周四
实现的功能: 循环队列 普通队列
/* Note:Your choice is C IDE */

include “stdio.h”

//循环队列
/*
顺序 循环
队空 Front==rear Front==rear
队满 Rear==M (rear+1)%M==front
入队 Rear++ Rear=(rear+1)%M
出队 Front++ Front=(front+1)%M
长度 Rear-front (rear-front+M)%M
*/
struct list
{
int a[5];
int rear,front;
};
struct list s;
one(){
if((s.rear+1)%5==s.front){
printf(“队满\n”);
}
else{
printf(“请输入:”);
scanf(“%d”,&s.a[s.rear]);
s.rear=(s.rear+1)%5;
printf(“入队成功\n”);
}
}
two(){
if(s.front==s.rear)
{
printf(“队空\n”);
}
else
{
printf(“%d”,s.a[s.front]);
s.front=(s.front+1)%5;
}
}
void main()
{
int x;
s.rear=s.front=0;
while(1){
printf(“\t\t1.入队\n”);
printf(“\t\t2.出队\n”);
printf(“请选择:”);
scanf(“%d”,&x);
switch(x){
case 1:one();
break;
case 2:two();
break;
default:printf(“输入有误\n”);
}
}
}

/* Note:Your choice is C IDE */

include “stdio.h”

//普通队列
int a[5],x;
int rear,front;

one()
{
if(rear>=5)
{
printf(“队满\n”);
}
else
{
printf(“请输入:”);
scanf(“%d”,&a[rear]);
rear++;
printf(“入队成功\n”);
}
}
two()
{
if(front>=5)
{
printf(“队空\n”);
}
else
{
printf(“%d”,a[front]);
front++;
}
}
void main()
{ rear=front=0;
while(1)
{
printf(“\t\t1.入队\n”);
printf(“\t\t2.出队\n”);
printf(“请选择:”);
scanf(“%d”,&x);
switch(x)
{
case 1:one();
break;
case 2:two();
break;
default:printf(“编号有误\n”);
}
}
}

去年花里逢君别,今日花开已一年。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值