关于单向动态链表的一些总结
来源:互联网 发布:魔方淘宝 编辑:程序博客网 时间:2024/06/10 08:44
所谓单向动态链表,顾名思义就是一条链,将内存零散空间通过指针串联起来,只有一个方向。作为一个工科学生,直入主题,不再啰嗦。
优点:1.采用动态内存分配,一个一个地开辟结点,可以利用到零散的内存空间,扩展性好。
2.插入、删除元素比较灵活,不像数组那样要移动大量的元素。
缺点:1.查询效率太低,链表必须从开头一个接一个地访问,而不像数组那样可以随机访问(由于是单向)。
2.排序十分麻烦。
3.链表的生命周期较长,假若一个程序员没有free的习惯,易造成内存泄露。
关于链表在什么情况下适用:
举个例子:设计一个游戏,将游戏的地图用网格线划分,假设每个点上都有怪物、宝物,假设这个游戏最高上线人数为100000人,每个人都要去到每个点去与怪物发生战斗,也就是说每个点至少都要容纳100000个人的数据。假如我们用数组来存储这些人的数据,也就是每个点都要申请一个a[100000]的数组,然而并不是每时每刻都是有100000人在线的,就算有也不一定全都到一个点,因此这样大的数组是浪费的,然而你又不能不考虑到有100000人到一个点的情况(假如真的有,你的数组空间不够,就会崩溃了),这种情况下,动态数组就有用武之地了。只要有一个人上线到一个点,就扩展一个结点来存储他的数据;假若这个人从b点到c点,就从b点删除他的结点,再从c点开辟一个新结点来存储。除此之外,技能栏的数据结构也可以用到二叉链表来存储。
以上都是老师上课讲过,本人记下并增加一些理解。
本人大一,才疏学浅,望各位大神斧正。
0 0
- 关于单向动态链表的一些总结
- 单向链表的一些操作
- 单向链表的一些操作
- 动态单向链表的创建
- 关于单向链表创建以及一些简单的增删查改功能
- 关于单向链表的反转
- 关于单向链表的逆序
- 总结:单向链表的逆转
- C语言---关于链表的各项操作总结-----单向链表
- Java动态单向链表
- 关于动态规划的一些经验与总结
- 单向链表的一些基础接口的实现
- 自己写的一些单向链表操作
- 单向链表的一些操作实现-Java实现
- 单向动态链表的创建、输入、插入、删除、输出
- 单向动态链表的创建、输入、插入、删除、输出
- 单向链表操作总结
- 单向线性表的一些基本操作
- Android 性能测试实践(二) 实时监控工具
- 平凡而又神奇的贝叶斯方法
- oracle 导入导出、创建表空间
- oracle 数据库备份与还原
- [实例]php中PDO方式实现数据库的增删改查
- 关于单向动态链表的一些总结
- 五大开源Web服务器
- 开源 java CMS - FreeCMS2.3 移动app运行配置
- NSString属性什么时候用copy,什么时候用strong?
- OC重要工作也由编译器来完成?
- 通过读注册表的方法获得 home directory:所有用户
- 【学习笔记】JavaScript编码规范- 空白
- 在web页面上快速生成二维码的两种实用方法
- VC获取Windows所有用户的用户名