如何理解链表的游标实现

fighting2022 2020-01-11 06:47:28
我不清楚游标之间是如何连接的?是如何实现链表的功能的?想了好久没有想明白,希望有大佬可以帮助说明一下。感谢感谢!
...全文
181 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
柒贰伍玖 2020-01-12
  • 打赏
  • 举报
回复
是的,理解正确
fighting2022 2020-01-11
  • 打赏
  • 举报
回复
谢谢您的回复 我想了想,总结了一下,麻烦您看一下我说的对不对?感谢 数组下标其实也就是代表着一个结构体的地址,而NodeArray[i].next 就可以看做存储着下个结构体的地址。虽然数组在内存中是连续的,但是用游标实现的链表却在内存中不连续,每个元素之间是由结构体中的next来连接的。
寻开心 2020-01-11
  • 打赏
  • 举报
回复
我的理解是就是用数组实现的链表:实现的链表实际上并不是真正的动态内存组成的,没有malloc 和 free的内存操作
而是用事先定义的一个大数组来保存数据,数组元素是一个结构, 其中一个属性是next,指向下一个元素的数组下标
struct Node {
struct ata {
} data;
int next;
} NodeArray[1000];
大概就这个一个结构, 初始化next都是-1, 表示空的。 因为数组的下标从0开始

链表就是用NodeArray[i].next --> NodeArray[j].next --> NodeArray[k] .......
这里的next就是游标,不是指针

这个更适合一些没有指针的语言来使用。 c使用也可以, 没有内存的分配和释放,效率也高一些;限制就是数组的大小不能改了。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧