1 / 20
文档名称:

首次适应算法.doc

格式:doc   大小:447KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

首次适应算法.doc

上传人:小s 2022/6/7 文件大小:447 KB

下载得到文件列表

首次适应算法.doc

相关文档

文档介绍

文档介绍:#include<iostreain>
#include<>
usingnamespacestd;
stmctmemory
{
stmctmemory*former;〃前向指针
mtaddress;//地址
m
previous=curient;
cuiTent=cunent->next;
}
if(current==NULL)
{cout«n内存中没有任何作业!!!”《endl;return;}elseif(cunent->next==NULL)
{〃当前作业为内存中最后一个作业
if(previous->state==0)
{//与前一个相邻空闲区合并
pievious->size=previous->size+cunent->size;
pievious->next=NULL;
cout«M作业H«(curient->num)«M释放M«(cunent->size)«nk的空间n«endl;print(mem);
else
{〃将状态改为0,即为空闲区
current->state=O:
cout«M作业H«(curient->num)«M释放M«(cunent->size)«nk的空间n«endl;print(mem);
elseif((cunent->next)->next==NULL)//p6
{〃当前作业为倒数第二个作业(此种情况还是要单列出来讨论的否则会出现错误)if(previous->state==0&&(current->next)->state=O)//p7
{〃释放的地址空间前后均为空闲区pievious->size=previous->size+cunent->size+(cunent->next)->size;pievious->next=NULL;〃与下边else(其他情况的不同之处)cout«M作业H«(current->num)«H释放H«(cunent->size)«nk的空间,,«endl;print(mem);
}
elseif(previous->state==0)//p5
{//释放的地址空间前面有空闲块则把它和前面的合并pievious->size=previous->size+cunent->size;
(cunent->next)->fonner=previous;pievious->next=cunent->next;
cout«M作业H«(current->num)«H释放H«(cunent->size)«nk的空间,,«endl;print(mem);
}
elseif((cuirent->next)->state==O)//p8
{//释放的地址空间后面有空闲块则把它和后面的空闲块合并current->size=current->size+(current->next)->size;
current->state=O:
current->next=NULL;〃与F边else(其他情况的不同之处)cout«M作业H«(current->num)«H释放H«(cunent->size)«nk的空间,,«endl;print(mem);
}
else
{〃释放的地址空间前后都没有空闲块时直接把它的状态改为0current->state=O:
cout«M作业H«(current->num)«H释放H«(cunent->size)«nk的空间,,«endl;print(mem);
}
}
else
{〃其他情况下(当前作业在链表中间)
if(previous->state==0&&(current->next)->state=O)//p7
{//所释放空间前后均为空闲区pievious->size=previous->size+cunent->size+(cunent->next)->size;((cuirent->next)->next)->fbrmei-pievious;
pievious->next=(cunent->iiext)->next;
cout«M作业H«(current->num)«H释放H«(cunent->size)«nk的空间,,«endl;print(mem);
}
elseif(previous->state==0)//p5
{//释放的地址空间前面有空闲块则把它和前面的合并pievious->size=previous->size+cunent->size;
(cunent->next)->fonner=pievious;pievious->next=current->next;
cout«M作业H«(current->nu