问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

fifo算法怎么写

发布网友 发布时间:2022-05-05 15:32

我来回答

1个回答

热心网友 时间:2022-06-27 16:51

用C语言编写简单的FIFO置换算法#include "stdio.h"
#include "malloc.h"
#define OK 1
#define ERROR 0
#define NULL 0
#define status int
typedef int Elemtype;

/*这个定义的是队列的元素的数据结构*/
typedef struct tailDATA{
Elemtype data;/*这个存放的是队列元素的值*/
struct tailDATA *next;//指向下一个元素
}datatail,*map;

/*以下定义的是队列头的数据结构*/
typedef struct Tail{
/*说明:对队列进行操作的时候,插入的时候是对front操作,删除*/
Elemtype data;/*这个记载的是队列的元素的个数*/
map front;/*这个是队列的头*/
map rear;/*这个是队列的尾*/
}tail,*mappath;

/*以下定义的就是操作了,初始话的操作就不想做了,直接写个插入和删除等的一些的算法就可以了*/
status inserttail(mappath &T,map P)
{/*这个函数的功能是将一个个已知的元素插入队列中*/
if(T==NULL)
{
T=(mappath)malloc(sizeof(tail));
T->data=0;
T->front=NULL;
T->rear=NULL;
}
if(!P) return OK;
T->rear->next=P;
T->rear=P;
if(!(T->front)) T->front=P;
return OK;
}

status insertdatatail(mappath &T,int a)
{/*这个函数将一个元素插入队列中,其实这个函数是没有必要的,但是为了方便起见,还是写了个*/
if(T==NULL)
{
T=(mappath)malloc(sizeof(tail));
T->data=0;
T->front=NULL;
T->rear=NULL;
map linshi=(map)malloc(sizeof(datatail));
linshi->data=a;
linshi->next=NULL;
T->front=linshi;
T->rear=linshi;
T->data=1;
return OK;
}
map linshi=(map)malloc(sizeof(datatail));
linshi->data=a;
linshi->next=NULL;
T->rear->next=linshi;
T->rear=linshi;
if(!(T->front)) T->front=linshi;
T->data++;
return OK;
}

status deltail(mappath &T)
{/*因为对队列进行删除操作的时候,基本上是没有什么条件,就是对front做一些相应的操作就可以了
,所以他的函数列表也就比较少了*/
if(!T) return ERROR;/*如果队列本来就是空的,那么就返回一个错误的信息*/
if(T->front==T->rear)
{/*如果队列只有一个元素,就执行下面的操作,防止出现了错误*/
map linshi=T->front;
free(linshi);
T->data=0;
T->front=NULL;
T->rear=NULL;
return OK;
}
map linshi=T->front;
T->front=T->front->next;
T->data--;
free(linshi);
return OK;
}

status puttail(mappath T)
{/*这个是对一个已经存在的队列进行输出*/
if(!T) return ERROR;
printf("the tail'count is %d\n",T->data);
int count=T->data;map q=T->front;
for(int i=0;i<count;i++)
{
printf("%d ",q->data);
q=q->next;
}
return OK;
}

int main()
{
printf("hello,world!\n");
mappath q=NULL;int count1=0;int dataa=0;
printf("please input a number to the count of tail\n");
scanf("%d",&count1);
for(int i=0;i<count1;i++)
{
printf("please input a number to tail\n");
scanf("%d",&dataa);
insertdatatail(q,dataa);
}
puttail(q);
deltail(q);
puttail(q);
return 0;
}追问要是有流程图就好了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小红书怎么修改ID 专属ID更改方法 Win11如何更改字体视觉效果 Win11字体视觉效果修改方法介绍 华为团队管理模式 通信工程这个专业主要是学什么 专注力差的孩子该如何纠正 三岁的孩子专注力不好,怎么培养她的专注力呀!。 镇江关周围有什么玩的,镇江及周边旅游景点 大港南站去镇江汽车站怎么走 镇江汽车站到大港南站有多远 出国去澳大利亚留学都需要注意哪些事项呢? 澳大利亚留学条件及注意事项有哪些 谁能详细介绍下fifo???谢谢!!! 操作系统题LRU,FIFO算法怎么做? FIFO算法(假定开始时先把1,2,3,4号页面装入内存) 我己开通农行掌上银行业务,怎么登录不上农行掌上银行客户端呢? 先进先出页面置换算法的实现过程 急急急!中国农业银行网上银行登录不了!高分! 草莓已经开花结果了 叶子为什么慢慢枯萎了 草莓精灵dj 中国农业银行在电脑上登录不上去,验证码老是变,是怎么回事啊? 听说现在有很多草莓是激素草莓,买草莓的时候怎么辨别呢? dota caomei是男是女 求2011年 6月/9月/12月 三份入党积极分子思想汇报。 求LOL WE战队队员若风和卷毛在国服IONIA区的ID! 求草莓100%动画片全集下载+OVA 怎样使用泡打粉效果发泡效果更好,是先把泡打粉在水里融化后加入面粉里搅拌好,还是直接添加进面粉里搅拌 联通电话卡不用了 话费怎么办? 泡打粉和改良剂是在和面时加入水中呢还是之后再加呢?谢谢 IP翻译成中文啥意思? IP地址中的IP中文意思是什么? 支付宝给朋友转账真的想淘宝那样有第三方没吗 关于梦幻跑商的问题!! 页面置换算法 流程图 这个FIFO算法求帮忙。 一个程序的页面走向,FIFO和LRU页面置换算法 fifo算法使用普遍吗 为什么我的网络上网不卡玩游戏卡 电脑配置没问题的 我的电脑能吃鸡,玩一些大型游戏,打英雄联盟却会掉帧,卡顿。网络是绝对没问题的,用笔记本连接打不卡? 电脑玩游戏卡,但网速没问题怎么办 玩游戏卡顿 配置网络没问题 数学手抄报怎么做。要图。 数学手抄报怎么画!??!! 数学手抄报图片小小数学家四年级 数学手抄报图片怎么又漂亮 数学手抄报的插图。急急急!!! 电表分表用电量怎么计算, 我心中的数学手抄报图片 怎样整理数学手抄报图片 电表是是多少度,怎么计算电费。 为什么信封后面的ZL是什么意思 做一个ZL信封(不计粘贴处)至少需要多少平方分米的材料?