文档介绍:#include<>
#define getpch(type) (type*)malloc(sizeof(type))
struct LNode
{ int size;
int start;
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;
}
}// end of BF_SortList
void GetFree() /*生成空闲分区链*/
{
int size,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();
}// end of GetFree
void Assign(int size) /*最佳适应算法和首次适应算法空闲分区的分配*/
{
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 ;