存储器管理---动态分区分配算法的模拟内容摘要:

headaddress=address。 headsize=headsize+size。 break。 } else { point2=new linknode(size,address,NULL,head)。 headforward=point2。 head=point2。 break。 } } if((point1forwardaddress+point1forwardsize)==address)//如果与前一个相邻 { if((address+size)==point1address)//如果同时与后一个相邻 , 合并三者,删除 point1 { point2=point1forward。 point2size=point2size+size+point1size。 if(point1==rear)//如果 point1 是尾指针 { rear=point2。 delete point1。 break。 } else { point2next=point1next。 point1nextforward=point2。 delete point1。 break。 } } else { //只与前一个相邻,则与前一个合并 point1forwardsize=point1forwardsize+size。 break。 } } if((address+size)==point1address)//如果与后一个相邻 { point1size=point1size+size。 //与后一个合并 break。 } //如果前后都不相邻,申请新的节点 point2=new linknode(size,address,point1forward,point1)。 point1forwardnext=point2。 point1forward=point2。 } point1=point1next。 } if(point1==NULL)// { if((rearaddress+rearsize)==address)//如果与 rear 相邻 { rearsize=rearsize+size。 } else { //另立新的 rear point2=new linknode(size,address,rear,NULL)。 rearnext=point2。 rear=point2。 } } } //判断是否输出完节点 bool first_fit_link::over() { if(work==NULL) { work=head。 return true。 } else { return false。 } } //返回链表元素 Job first_fit_link::returnjob() { linknode * point1=work。 Job pointNum。 if(point1!=NULL) { =point1size。 =point1address。 } work=worknext。 return pointNum。 } endif 最佳适应算法代码 ifndef Bestfit_H。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。