- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构题集》答案第8章动态存储管理
第八章 动态存储管理
8.11
typedef struct {?????????? ?????? char *start; ???????????????? int size; ????????????? } fmblock; //空闲块类型
char *Malloc_Fdlf(int n)//遵循最后分配者最先释放规则的内存分配算法{??while(Gettop(S,b)b.sizen)??{????Pop(S,b);????Push(T,b); //从栈顶逐个取出空闲块进行比较??}??if(StackEmpty(S)) return NULL; //没有大小足够的空闲块??Pop(S,b);??b.size-=n;??if(b.size) Push(S,{b.start+n,b.size});//分割空闲块??while(!StackEmpty(T))??{????Pop(T,a);????Push(S,a);??} //恢复原来次序??return b.start;}//Malloc_Fdlf
mem_init()//初始化过程{??...??InitStack(S);InitStack(T); //S和T的元素都是fmblock类型??Push(S,{MemStart,MemLen}); //一开始,栈中只有一个内存整块??...}//main
8.12
void Free_Fdlf(char *addr,int n)//与上一题对应的释放算法{??while(Gettop(S,b)b.startaddr)??{????Pop(S,b);????Push(T,b);??} //在按地址排序的栈中找到合适的插入位置??if(Gettop(T,b)(b.start+b.size==addr)) //可以与上邻块合并??{????Pop(T,b);????addr=b.start;n+=b.size;??}??if(Gettop(S,b)(addr+n==b.start)) //可以与下邻块合并??{????Pop(S,b);????n+=b.size;??}??Push(S,{addr,n}); //插入到空闲块栈中??while(!StackEmpty(T))??{????Pop(T,b);????Push(S,b);??} //恢复原来次序}//Free_Fdlf
8.13
void Free_BT(Space pav,Space p)//在边界标识法的动态存储管理系统中回收空闲块p{??n=p-size;??f=p+n-1; //f指向空闲块底部??if((p-1)-tag(f+1)-tag) //回收块上下邻块均为占用块??{????p-tag=0;f-tag=0;????f-uplink=p;????if(!pav)????{??????p-llink=p;??????p-rlink=p;????}????else????{??????q=pav-llink;??????p-llink=q;p-rlink=pav;??????q-rlink=p;pav-llink=p;????}????pav=p;??}//if??else if(!(p-1)-tag(f+1)-tag) //上邻块为空闲块??{????q=(p-1)-uplink;????q-size+=n;????f-uplink=q;????f-tag=0;??}??else if((p-1)-tag!(f+1)-tag) //下邻块为空闲块??{????q=f+1;????s=q-llink;t=q-rlink;????p-llink=s;p-rlink=t;????s-rlink=p;t-llink=p;????p-size+=q-size;????(q+q-size-1)-uplink=p;????p-tag=0;??}??else //上下邻块均为空闲块??{????s=(p-1)-uplink;????t=f+1;????s-size+=n+t-size;????t-llink-rlink=t-rlink;????t-rlink-llink=t-llink;????(t+t-size-1)-uplink=s;??}}//Free_BT,该算法在课本里有详细的描述.
8.14
void Free_BS(freelist avail,char *addr,int n)//伙伴系统的空闲块回收算法{??buddy=ad
您可能关注的文档
- 广东四级作文模板.doc
- 公兴中心小学庆五一活动方案.doc
- “三三法”增员选择面谈话术.doc
- 第11章设计营销与管理.doc
- 09毕业设计选题-选学生-最终稿.doc
- 小记者培训摄影课程.doc
- 2012年考研英语真题(一).doc
- 酶与抑制剂关系综述.doc
- 运作管理》实验6指导.ppt
- 内部控制审计业务手册.doc
- 二零二三年度中学教师资格考试《教育知识与能力》黄金考点总结.pdf
- 2023年三级营养师考试模拟卷题库(含答案).pdf
- 2025年青岛版(2024)小学科学一年级下册《动物的鼻子》说课稿及反思.docx
- 2023年三级公共营养师考前习题库(含答案).pdf
- 二零二三年度中学英语写作基本句型扩展及对应练习.pdf
- 2025年青岛版(2024)小学科学一年级下册《动物的眼睛》说课稿及反思.docx
- 二零二三年度重大疾病防治知识与技能竞赛试题(含答案).pdf
- 2025年青岛版(2024)小学科学一年级下册《认识动物》教案及反思.docx
- 2023年陕西移动双选(网络通道)考试题库(含答案).pdf
- 2025年青岛版(2024)小学科学一年级下册《做泥塑》说课稿及反思.docx
文档评论(0)