循环首次适应算法、首次适应算法、最佳适应算法-C语言版.doc 立即下载
2024-12-12
约5.2千字
约9页
0
41KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

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

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

预览

免费试读已结束,剩余 4 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

#include<stdio.h>

#definegetpch(type)(type*)malloc(sizeof(type))
structLNode
{intsize;
intstart;
intend;
structLNode*next;
structLNode*front;
}*L;/*L为头指针*/
typedefstructLNodeLN;
LN*find;
intn;
voidInsertList(intsize,intstart)
{	//在带头结点的单链线形表头结点后插入
	LN*p,*s,*t;
	p=L;
	t=p->next;	
	s=getpch(LN);//生成新结点
	s->size=size;
	s->start=start;
	s->end=start+size;	
	s->next=t;//插入L中
	p->next=s;
	if(t)t->front=s;
	s->front=p;
}//endofInsertList
voidPrintList()/*打印*/
{
	LN*p;inti;
	p=L->next;
	
	printf("\n空闲区号长度起始位置终止位置\n");
	for(i=1;i<=n;i++)
	{
		printf("%3d\t%3d\t%3d\t%4d\n",i,p->size,p->start,p->end);
		p=p->next;
	}

}
voidBFSortList()/*最佳适应算法的排序*/
{
	LN*p,*s,*t;
	intmin_size,i;
	intsize,start,end;		
	t=L->next;
p=L->next;
	for(i=0;i<n;i++)
	{
		s=p->next;
		min_size=p->size;
		while(s)
		{
			if(min_size>s->size)
			{
				min_size=s->size;
				t=s;
			}
			s=s->next;
		}
		size=t->size;
		start=t->start;
		end=t->end;

		t->size=p->size;
		t->start=p->start;
		t->end=p->end;

		p->size=size;
		p->start=start;
		p->end=end;

		t=p->next;
p=p->next;

	}
}//endofBF_SortList

voidSortList()/*首次和循环首次适应算法的排序*/
{
	LN*p,*s,*t;
	intmin_start,i;
	intsize,start,end;		
	t=L->next;
p=L->next;
	for(i=0;i<n;i++)
	{
		s=p->next;
		min_start=p->start;
		while(s)
		{
			if(min_start>s->start)
			{
				min_start=s->start;
				t=s;
			}
			s=s->next;
		}
		size=t->size;
		start=t->start;
		end=t->end;

		t->size=p->size;
		t->start=p->start;
		t->end=p->end;

		p->size=size;
		p->start=start;
		p->end=end;

		t=p->next;
p=p->next;

	}
}//endofBF_SortList

voidGetFree()/*生成空闲分区链*/
{
	intsize,start,i;
L=getpch(LN);/*生成一个表头结点*/
	L->next=NULL;
	L->front=NULL;
	printf("请输入空闲区数:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{	
		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)
		
查看更多
王子****青蛙
实名认证
内容提供者
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

循环首次适应算法、首次适应算法、最佳适应算法-C语言版

文档大小:41KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用