[DS+Algo] 002 一维表结构
2024-10-03 21:53:33
1. 顺序表
1.1 分类
- 简单顺序表
- 索引顺序表
- 数据可以很不规则
- 数据物理排列可以不要求
- 索引的格式规整
1.2 实现方式
以更改是否方便为准
- 一体式
- 分离式
1.3 扩容问题
- 每次定量增长:节省空间,操作频繁
- 每次按比例增长:浪费
1.4 操作
- 增加
- 保存尾端插入
- 非保存
- 保存
- 删除:和增加类似
- Python-list 操作
- 分离技术实现的动态表
- 空表:8 个位置
- 插入满:扩大 4 倍
- 若果已经很大(如,>50000):加 1 倍
2. 链表
2.1 分类
- 单向链表
- 单向循环链表
- 双向链表
2.2 链表相关操作
- is_empty() 判断链表是否为空
- length() 返回链表的长度
- traverse() 遍历
- add_first(item) 在头部添加一个结点(节点)
- append(item) 在尾部添加一个结点
- insert(pos, item) 在指定位置 pos 添加一个结点
- remove(item) 删除一个结点
- search(item) 查找结点是否存在
2.3 链表 VS 顺序表
下方 n 表示时间复杂度为 O(n),同理,1 指 O(1)
- 访问元素:n, 1
- 头部插入:1, n
- 尾部:n, 1
- 中间插入:n, n
3. 关于代码实现
- 代码见下一篇
- 内容包括
- 单向列表
- 单向循环列表
- 双向列表
最新文章
- Stanford机器学习笔记-9. 聚类(Clustering)
- (转)MySQL提示“too many connections”的解决办法
- 【转】移动web页面使用字体的思考
- Java类实例化时候的加载顺序
- SQL Server数据库大型应用解决方案总结
- 简单的线程同步问题:两个线程交替执行N次【Synchronized、Lock、ArrayBlockingQueue】
- JQuery图片滑动插件
- ECshop 在迁移到 PHP7 时遇到的兼容性问题
- 一个php创建webservice,并通过c#调用的真实实例
- java(jdk1.7) IO系列01之InputStream和OutputStream解析
- Python测试开发之---string
- jQuery hover() 方法
- [SHOI2008]汉诺塔
- 《C++实践之路.pdf》源码
- 谈.Net委托与线程——创建无阻塞的异步调用(二)
- CSS中float属性
- day17-json格式转换
- pca总结,非常详细
- 解题:POI 2009 Ticket Inspector
- php+tomcat 配置运行环境