数据结构与算法教程,数据结构C语言版教程!

数据结构与算法教程C语言版本套数据结构与算法教程,不仅讲解了基本的数据存储结构,还讲解了经典的算法,并把它们付诸实践,解决生活中的实际问题,例如停车场管理系统、迷宫游戏、字符过滤系统等。

这套数据结构教程,最大的特点是通俗易懂,深入浅出,摒弃教条主义,不做“学院派”,以“生动有趣”的笔风来讲解每个知识点,更配有完整的 C 语言实现代码供初学者参考。

数据结构是程序设计的重要理论基础,不管你从事什么方向的软件开发,一定会用到它。

第1章 数据结构入门
1.什么是数据结构
2.数据结构到底学什么?
3.逻辑结构和存储结构(物理结构)
4.如何衡量一个算法的好坏?
5.数据结构和算法的关系和区别
6.数据结构如何自学,效率更高?
7.数学不好,对学数据结构有影响吗?
8.学好数据结构,你已然超越了99%的程序员!
第2章 线性表
1.什么是线性表
2.顺序表(顺序存储结构)
3.顺序表的基本操作
4.单链表(链式存储结构)
5.单链表的基本操作
6.顺序表和链表的优缺点
7.4种算法,实现单链表的反转!
8.如何判断两个单链表相交?
9.存储结构和存取结构,完全不是一码事!
10.静态链表
11.静态链表基本操作
12.静态链表和动态链表的区别
13.双向链表
14.双向链表基本操作
15.双向链表实现贪吃蛇游戏(含源码)
16.循环链表实现约瑟夫环
17.如何判断单链表为有环链表?
18.双向循环链表
19.[项目实践]俄罗斯轮盘赌小游戏
第3章 栈和队列
1.什么是栈
2.顺序栈及基本操作
3.链栈及基本操作
4.[项目实践]进制转换器
5.[项目实践]括号匹配
6.如何用栈结构求表达式的值?
7.什么是队列
8.顺序队列及实现
9.链式队列及基本操作
10.[项目实践]变态的停车场管理系统
11.[项目实践]扑克牌小游戏
12.栈和队列是线性结构
第4章 字符串
1.串是什么
2.串的定长顺序存储
3.串的堆分配存储结构
4.串的块链存储结构
5.BF算法(串模式匹配算法)
6.KMP算法(快速模式匹配算法)
7.[项目实践]字符过滤系统
第5章 数组和广义表
1.什么是数组存储结构
2.数组的顺序存储
3.矩阵的压缩存储
4.三元组顺序表
5.行逻辑链接的顺序表
6.十字链表法
7.矩阵的转置算法
8.稀疏矩阵的快速转置
9.行逻辑链接的顺序表实现矩阵乘法
10.十字链表实现矩阵加法
11.什么是广义表
12.广义表的存储结构
13.广义表的深度和长度
14.广义表的复制
第6章 树存储结构
1.数据结构的树存储结构
2.什么是二叉树
3.二叉树的顺序存储结构
4.二叉树的链式存储结构
5.由浅入深讲二叉树4种遍历算法的由来
6.二叉树先序遍历(递归与非递归)
7.二叉树中序遍历(递归和非递归)
8.二叉树后序遍历(递归与非递归)
9.二叉树层次遍历
10.线索二叉树
11.双向线索二叉树
12.树的双亲表示法
13.树的孩子表示法
14.树的孩子兄弟表示法
15.森林转化为二叉树
16.哈夫曼树(赫夫曼树、最优树)
17.哈夫曼编码
18.回溯算法
19.回溯算法解决八皇后问题
20.n个结点的二叉树种类
21.[项目实践]移动迷宫小游戏(初级版)
第7章 图存储结构
1.数据结构的图存储结构
2.什么是连通图
3.什么是生成树(生成森林)
4.图的顺序存储结构
5.图的邻接表存储结构
6.图的十字链表存储结构
7.图的邻接多重表存储结构
8.深度优先搜索和广度优先搜索
9.深度优先生成树和广度优先生成树
10.普里姆算法(Prim算法)
11.克鲁斯卡尔算法(Kruskal算法)
12.重连通图及重连通分量
13.拓扑排序算法
14.AOE网求关键路径
15.迪杰斯特拉算法
16.弗洛伊德算法
17.[项目实践]移动迷宫小游戏(升级版)
第8章 动态内存管理
1.动态内存管理机制
2.边界标识法
3.伙伴系统管理动态内存
4.系统垃圾回收机制
5.内存紧缩(内存碎片化处理)
第9章 查找表结构
1.什么是查找表
2.顺序查找算法
3.二分查找(折半查找)算法
4.分块查找(索引顺序查找)算法
5.静态树表查找算法
6.二叉排序树(二叉查找树)
7.平衡二叉树(AVL树)
8.红黑树(更高级的二叉查找树)算法
9.B-树及其基本操作(插入和删除)
10.B+树及基本操作(插入和删除)
11.键树查找法(双链树和字典树)
12.什么是哈希表(散列表)
13.哈希查找算法
第10章 排序算法
1.插入排序算法
2.折半插入排序算法
3.2路插入排序算法
4.表插入排序算法
5.希尔排序算法(缩小增量排序)
6.冒泡排序算法
7.快速排序算法(QSort,快排)
8.简单选择排序算法
9.树形选择排序(锦标赛排序)算法
10.堆排序算法
11.归并排序算法
12.基数排序算法
13.内部排序算法的优势分析
第11章 外部排序算法
1.什么是外部排序算法
2.多路平衡归并排序(胜者树、败者树)算法
3.置换选择排序算法
4.最佳归并树