1 / 9
文档名称:

循环首次适应算法首次适应算法最佳适应算法C语言版.doc

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

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

分享

预览

循环首次适应算法首次适应算法最佳适应算法C语言版.doc

上传人:春天资料屋 2022/3/28 文件大小:60 KB

下载得到文件列表

循环首次适应算法首次适应算法最佳适应算法C语言版.doc

文档介绍

文档介绍:#include<>
#definegetpch(type)(type*)malloc(sizeof(type))
structLNode
{intsize;
intstart;
inte
{
printf("请输入第%2d空闲区的大小和始址:",i);
scanf("%3d,%3d",&size,&start);
InsertList(size,start);
}
printf("\n按任意键继续");
//printf("\n空闲链表情况:\n");
//PrintList( );
}//endofGetFree
voidAssign(intsize)/*最佳适应算法和首次适应算法空闲分区的分配*/
{
LN*p,*t;
p=L->next;
t=L;
while(p)
{
if(size>p->size)
{
p=p->next;
t=t->next;
if(!p)
{
printf("没有足够大的空闲区分配!分配不成功");
}
}
else
{
p->size=p->size-size;
p->start=p->start+size;
if(p->size==0)
{
t->next=p->next;
p->next->front=t;
n--;
free(p);
}
printf("分配成功!\n");
printf("分配后的空闲链表情况如下:\n");
PrintList( );
break;
}
}
}//endofFF_Assign
intflag=-1;
voidNF_Assign(intsize)/*循环首次适应算法的分配*/
{
LN*p,*t;
inti=n;
p=find->next;
t=find;
while(p)
{
if(size>p->size)
{
p=p->next;
t=t->next;
if(!p)
{
printf("没有足够大的空闲区分配!分配不成功");
}
}
else
{
p->size=p->size-size;
p->start=p->start+size;
find=p;
if(p->size==0)
{
t->next=p->next;
p->next->front=t;
n--;
free(p);
}
printf("分配成功!\n");
flag=1;
printf("分配后的空闲链表情况如下:\n");
Print(L);
break;
}
}
if(flag==-1)
{p=L->next;t=L;while(p!=find)
{
if(size>p->size)
{
p=p->