预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

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

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;}//endofInsertListvoidPrintList()/*打印*/{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_SortListvoidSortList()/*首次和循环首次适应算法的排序*/{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_SortListvoidGetFree()/*生成空闲分区链*/{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