首页 > 数据结构 阅读:25,967

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

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

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

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

数据结构优质学习资源推荐:数据结构与算法方面的经典书籍数据结构与算法视频教程数据结构旧版网站
第1章 数据结构入门
1.什么是数据结构
2.数据结构有哪些
3.算法时间复杂度和空间复杂度
4.逻辑结构和存储结构(物理结构)
5.数据结构和算法的关系和区别
第2章 线性表
1.什么是线性表
2.顺序表(顺序存储结构)
3.顺序表的基本操作
4.单链表(链式存储结构)
5.单链表的基本操作
6.顺序表和链表的优缺点
7.线性表的顺序存储结构是随机存取结构
8.静态链表
9.静态链表基本操作
10.静态链表和动态链表的区别
11.双向链表
12.双向链表基本操作
13.循环链表实现约瑟夫环
14.双向循环链表
15.[项目实践]俄罗斯轮盘赌小游戏
第3章 栈和队列
1.什么是栈
2.顺序栈及基本操作
3.链栈及基本操作
4.[项目实践]进制转换器
5.[项目实践]括号匹配
6.什么是队列
7.顺序队列及实现
8.链式队列及基本操作
9.[项目实践]变态的停车场管理系统
10.[项目实践]扑克牌小游戏
11.栈和队列是线性结构
第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.最佳归并树

编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注