数据结构探险之线性表篇-慕课网
C-PLUS-PLUS_STUDY/IMOOC_DATA_STRUCTOR_EXPLORE_CPP/l03_list at master · laputa-er/C-PLUS-PLUS_STUDY · GitHub
本课程主要以顺序表和链表作为内容主体,详细讲述了顺序表及链表的实现原理,并手把手完成顺序表及链表的基本结构操作,课程的最后通过通讯录的经典实例进一步深化讲解较为复杂的链表,使学员可以将知识融会贯通以至于学以致用。
1 线性表
说明:线性表是 N 个数据元素的有限序列。
2 顺序表
说明: 基于数组来实现,因此随机访问速度和遍历效率高,但插入和删除效率低。
1 |
|
3 链表
说明: 相比顺序表,链表伸缩性好,插入删除效率高,遍历和随机访问效率低。
3.1 基础
3.1.1 单链表(单向链表)
3.1.2 循环两表
3.1.3 双向链表
3.1.4 静态链表
说明:用数组实现的链表。
3.2 代码
以单链表实现为例,其它大同小异。
1 | . |
Node.h
1 |
|
Node.cpp
1 |
|
List.h
1 |
|
List.cpp
1 |
|
main.cpp
1 |
|
4 链表应用-通讯录
4.1 需求
联系人信息:姓名 电话
功能菜单:
- 新建联系人
- 删除联系人
- 浏览通讯录
- 推出通讯录
请输入:
4.2 程序设计
- Person 类需要重载
<<
、==
、=
三种运算符。 - Node 的 data 属性改为 Person 类型。
1 | . |
4.3 核心代码
1 |
|