链表的游标实现
来源:互联网 发布:数据加密标准des 编辑:程序博客网 时间:2024/04/30 10:21
诸如BASIC和FORTRAN等许多语言都不支持指针。如果需要链表而又不能使用指针,那么就必须使用另外的实现方法。我们将描述这种方法并称为游标(cursor)实现法。
在链表的指针实现中有两个重要的特点:
**1:**数据存储在一组结构体中。每一个结构体包含有数据以及指向下一个结构体的指针。**2:**一个新的结构体可以通过调用malloc而从系统全局内存(global memory)得到,并可通过调用free而被释放。
游标法必须能够模仿实现这两条特性:
满足条件1的逻辑方法是要有一个全局的结构体数组。该数组类似与系统中的内存,申请节点,释放节点均在此数组中进行。并且数组的大小决定链表的大小。对于该数组中的任何单元,其数组下表可以用来代表一个地址。
下图给出链表游标实现的声明
模拟满足条件2,让CursorSpace数组中的单元代替malloc和free的职能。为此我们保留一个表(即freelist),这个表由不在任何表中的单元构成。该表将用单元0作为表头。其初始配置在如下图所示:
对于Next,0的值等价于NULL指针。CursorSpace的初始化时一个简单的循环结构。为执行malloc功能,将(在表头后面的)第一个元素从freelist中删除。为了执行free功能,我们将该单元放在freelist的前端。注意:如果没有可用空间,那么我们的例程通过置P = 0会正确地实现。它表明再也没有空间可用,并且也可以使CursorAlloc的第二行成为空操作(no-op)。**下图是malloc和free的游标实现**
注意:
这里的CursorAlloc和CursorFree是不能单独使用的,它嵌入到了Delete和Insert中。换句话说,CursorAlloc和CursorFree对于调用者来说是封闭的。
0 0
- 链表的游标实现?
- 链表的游标实现
- 链表的游标实现
- 链表的游标实现
- 链表的游标实现
- 表的游标实现
- 链表游标实现
- 链表的游标(cursor)实现
- 【数据结构与算法】静态链表的游标实现
- 算法学习 - 链表的游标实现~ C++
- [数据结构与算法分析] 链表的游标实现
- c语言,顺序空间游标链表的实现
- 算法基础之链表的游标实现
- 第七篇:静态链表的游标实现
- sqlserver 游标的实现
- 数组的游标实现
- 游标的实现方法
- SQL游标的实现
- 群聊天逆矩阵记录
- 服务器上只安装一份Tomcat,如何部署多个应用,要求每个应用使用不同的端口
- [zynq] zynq7000开发流程之仿真TestBench
- 近期javaWEB项目总结
- QApplication与QCoreApplication
- 链表的游标实现
- [5]AMQP(高级消息队列协议) ----如何创建自己的SSLContext对象
- 38. 后台模块开发(3)
- 轻量级Android网络请求框架
- Nginx Location配置
- 数组去重,简短而有效的方法
- 阿里云服务器搭建ghost博客之Node环境安装(一)
- 如何构建安全的Android应用
- Android开发学习之使用ViewPager+PagerTabStrip制作可滑动的Tab