最佳适应算法的C++编程

最佳适应算法的C++编程

ID:37717970

大小:35.50 KB

页数:9页

时间:2019-05-29

最佳适应算法的C++编程_第1页
最佳适应算法的C++编程_第2页
最佳适应算法的C++编程_第3页
最佳适应算法的C++编程_第4页
最佳适应算法的C++编程_第5页
资源描述:

《最佳适应算法的C++编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、最佳适应算法的C++编程一.程序说明:本程序在vc++6.0上运行通过,考虑到很多种情况.(1)、我发现书上所说的当回收块与空闲块相连的那些情况,没有必要每种情况都写一个条件语句,然后用不同的语句来连接那些相连的内存块(这种做法见下面源程序中黑体字部分)。我使用的方法是在accept时不考虑是否会和已存在的空闲块相连,直接将它回收,然后按照首地址大小排序,再利用link函数将只要是相连的内存块都连起来。(2)、当使用assign函数分配空闲块时,如果空闲块正好被分完(即空闲块的SIZE=0)时打印输出的数据会是一组首地址和尾地

2、址相等,而size=0的数据,这显然不符合逻辑,因为首地址等于尾地址时size=1,而不是零!所以我想到了两种办法让刚好被分配完的空闲块不输出,第一种办法(见以下注释部分的print()函数部分的函数)只是屏蔽掉了SIZE=0的数据,而它们还是存在,即没有被真正的消灭掉,只是仅仅没被打印出来,这种做法将产生一种致命的后果,当SIZE=0的数据项非常多时将占用很多系统资源,运行程序时可能会死机!第二种做法(即源程序中所使用的print函数)才真正的将SIZE=0的数据项消灭掉。(3)、程序中的accept函数回收内存时,只要输入

3、的想回收的内存块中有一个区域(哪怕是SIZE=1的一小块)已经存在于空闲内存块中时就会输出提示错误的信息,我认为这样不是很合理,accept函数应该能避开输入的想回收的内存块中的已经是空闲的区域而只对非空闲区域作回收工作,这个功能在我的程序没有实现。二、源程序:#include#includeintk=4;structlist            //初始化数据的结构体   { intnum;                intadr;               intend;                intsiz

4、e;}s[]={{1,1000,2999,2000},{2,500,799,300},{3,3500,3699,200},{4,4000,4499,500}};//初始化空闲分区/*voidprint(structlist*p,intn)     //print函数作用输出结果{ intflag1=1; intflag2=1; inti,j=0;   cout<<"-------------------------------------"; for(i=0;i { if(p->size==0)  //控制不输出size=

5、0的空闲块 {  flag2=0;  j++;  continue; } else  flag2=1; if(p->size!=0&&flag2!=0) {  flag1=0;           cout<<"序号:"<

6、<"空闲内存已被分配完,请回收!"; cout<<"-------------------------------------";}*/voidprint(structlista[],intn)     //print函数作用输出结果{ inti;   cout<<"-------------------------------------"; if(a[0].size==0) { for(i=0;i

7、 a[i].end=a[i+1].end; } k=k-1; } if(k==0) cout<<"空闲块已经分配完毕,需要再分配,请回收!"; for(i=0;i

8、oidlink(structlista[]) /*当一块空闲内存的尾地址和下一块的首地址相连时,将它们合并成一块*/{ inti; for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。