文档介绍:#include<>#definegetpch(type)(type*)malloc(sizeof(type))
structLNode
{intsize;
intstart;
intend;
structLNode#include<>#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->s