首次适应算法,最佳适应算法,最坏适应算法源代码(The first adaptation algorithm, the best adaptation algorithm, the worst adaptation algorithm source code).docVIP
- 158
- 0
- 约4.71千字
- 约 19页
- 2017-09-26 发布于河南
- 举报
首次适应算法,最佳适应算法,最坏适应算法源代码(The first adaptation algorithm, the best adaptation algorithm, the worst adaptation algorithm source code)
首次适应算法,最佳适应算法,最坏适应算法源代码(The first adaptation algorithm, the best adaptation algorithm, the worst adaptation algorithm source code)
#包括 iostream。”
#包括程序。”
#定义自由0 / /空闲状态
#定义忙碌的1 /已用状态
#定义好1 / /完成
#定义错误0 / /出错
#定义max_length 640 / /最大内存空间为640kb
这是一个状态;
中断标志;
typedef struct freearea /定义一个空闲区说明表结构
{
长尺寸;/ /分区大小
长/分区地址地址;
int状态;/ /状态
} ElemType;
/ /线性表的双向链表存储结构
typedef struct dulnode
{
数据域;
结构dulnode *前;/ /前趋指针
结构dulnode *下;/ /后继指针
}
DuLNode * dulinklist;
dulinklist block_first;/ /头结点
dulinklist block_last;/ /尾结点
状态函数(int);/ /内存分配
状态自由(int);/ /内存回收
状态first_fit(int);/ /首次适应算法
状态best_fit(int);/ /最佳适应算法
状态worst_fit(int);/ /最差适应算法
show() /查看分配无效;
状态initblock();/ /开创空间表
状态initblock() /开创带头结点的内存空间链表
{
block_first =(dulinklist)malloc(sizeof(dulnode));
block_last =(dulinklist)malloc(sizeof(dulnode));
block_first -前= null;
block_first -下= block_last;
block_last -前= block_first;
block_last -下= null;
block_last -数据地址= 0;
block_last -数据大小= max_length;
block_last -数据状态=自由;
还可以;
}
/ /分配主存
状态函数(int ch)
{
int请求=0;
cout “请输入需要分配的主存大小(单位:KB):”;
请求;
如果(要求小于0 | |请求= = 0)
{
cout “分配大小不合适 endl,请重试!”;
返回错误;
}
如果(CH = = 2)/选择最佳适应算法
{
如果(best_fit(请求)= =好)cout “分配成功!” endl;
别的cout “内存不足 endl,分配失败!”;
还可以;
}
如果(CH = = 3)/选择最差适应算法
{
如果(worst_fit(请求)= =好)cout “分配成功!” endl;
别的cout “内存不足 endl,分配失败!”;
还可以;
}
其他/ /默认首次适应算法
{
如果(first_fit(请求)= =好)cout “分配成功!” endl;
别的cout “内存不足 endl,分配失败!”;
还可以;
}
}
/ /首次适应算法
状态first_fit(int请求)
{
/ /为申请作业开辟新空间且初始化
dulinklist温度=(dulinklist)malloc(sizeof(dulnode));
温度数据=大小=请求;
温度数据=状态=忙;
dulnode×P = block_first -下;
而(P)
{
如果(p = 数据,状态= =数据)。
{ //有大小恰好合适的空闲块
数据状态=忙;
还可以;
打破;
}
如果(p = 数据,状态=数据)。
{ //有空闲块能满足需求且有剩余
前值;
温度下一个;
温度- 数据。地址= P data.address;
前下;
p =前=温度;
P—数据。地址=温度-数据- data.size地址+温度;
数据=大小=请求;
还可以;
打破;
}
下一页;
}
返回错误;
}
/ /最佳适应算法
状态best_fit(int请求)
{
INT CH;/ /记录最小剩余空间
dulinklist温度=(dulinklist)malloc(sizeof(dulnode));
温度数据=大小=请求;
温度数据=状态=忙;
dulnode×P = block_first -下;
dulnode *q = null;/ /记录最佳插入位置
而(P)/初始化最小空间和最佳位置
{
如果(p = 数据)状态=(p 数据,大小=请求))
{
如果(q = NULL)
{
q = P;
您可能关注的文档
- 神剑3攻略(Excalibur 3 Raiders).doc
- 盘点2006经理人高危地带(下)(Check 2006 manager high risk area (lower)).doc
- 神武还魂狮驼孩子计划书(Smart lion camel children plan to revive).doc
- 神码分销业务将整合 与英迈交易方式定走向(Shenma distribution business will be integrated with the transaction set to Ingram).doc
- 破除迷信(Do away with all fetishes and superstitions).doc
- 离婚协议的法律效力(The legal effect of divorce agreements).doc
- 离开市场的创新没有出路(There is no way out of market innovation).doc
- 离心泵14417(Centrifugal pump 14417).doc
- 秋水(Autumn waters).doc
- 秦始皇十二铜人今何在(Qin Shihuang was now where twelve).doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)