调整双链表使之紧凑
来源:互联网 发布:美国仓库淘宝 编辑:程序博客网 时间:2024/05/16 10:55
10.3-5 设L是一长度为m的双链表,存储在长度为n的数组key、next和prev中。假设这些数组由维护双链自由表F的两个过程ALLOCATE-OBJECT和FREE-OBJECT来操纵。进一步假设在数组的n个元素中,有m个在表L和自由表F,移动L中的元素,使他们占有数组中的1, 2, ..., m位置,同时调节自由表F使之保持正确,并占有数组位置m+1, m+2, ..., n。所给出的运行时间应该是Θ(m),且只能使用固定量的额外空间。请仔细论证你所给出的过程的正确性。
分析与解答:
如下图所示,长度为m的双链表L存储在长度为n的数组中,自由表为F。为了使双链表分布更加紧凑,我们将移动L中的元素,使其占有数组中的1, 2, ..., m位置。
我们可以采用交换的手法,将L中的第1个元素和数组第1个位置的元素进行交换,一次类推,L中的第m个位置的元素和数组的第m个元素进行交换,每次交换仅需要常量的额外空间。
整个过程如下:
- 调整双链表使之紧凑
- Ubuntu下调整eclipse界面紧凑
- linux下eclipse的界面紧凑调整方法
- ASP.NET控件开发之"代码紧凑原则"
- ASP.NET控件开发之“代码紧凑原则”
- 传智播客——让WEB程序紧凑之过滤器
- 传智播客——让WEB程序紧凑之监听器
- Thrift之TProtocol类体系原理及源码详细解析之紧凑协议类TCompactProtocolT
- C++编程规范之5:一个实体应该只有一个紧凑的职责
- 调整图片之简介
- Thrift之TProtocol类体系原理及源码详细解析之紧凑协议类TCompactProtocolT(TCompactProtocol)
- 内存紧凑对齐
- .NET输出紧凑HTML
- 紧凑UI的制作
- SEO之心态调整篇
- 营养百科之调整肠胃
- jQuery之尺寸调整组件
- 链表之调整顺序
- EJB 3 事务管理探讨 收藏
- 解决AIX SSH登录后 delete与backspace按键解释错误问题
- C语言随机函数的使用
- 执行 smitty 报错 "1800-005 SMIT requires a minimum of 24 line by 80 column output display."
- VMware启动错误信息: The connection to the VMware USB Arbitration Service was unsuccessful
- 调整双链表使之紧凑
- 解决VirtualBox虚拟机无法Ping通主机的问题(取消Windows7的防ping设置)
- “Mounting HGFS filesystems: [FAILED]”
- ubuntu下飞鸽传书编译文档
- Android--当webview加载网页的时候在标题栏上显示加载进度
- C语言实现全排列(部分算法参考网友,可实现重复字符的组合)
- Internal AAM Error - agent could not start
- Java基础知识
- delete 删除字符串的字符