阅读:0       作者:严长生

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

——通俗易懂、深入浅出、中文免费、完整示例、基于C语言

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

这套教程最大的特点是通俗易懂,深入浅出,摒弃教条主义,不做“学院派”,以“生动有趣”的笔风来讲解每个知识点。

第1章 数据结构概述
1.什么是数据结构
2.数据结构有哪些
3.时间复杂度和空间复杂度
4.逻辑结构和存储结构(物理结构)
5.数据结构和算法
第2章 线性表
1.什么是线性表
2.顺序表
3.顺序表的基本操作
4.链表
5.链表的基本操作
6.顺序表和链表优缺点
7.静态链表
8.静态链表基本操作
9.静态链表和动态链表
10.循环链表实现约瑟夫环
11.双向链表
12.双向链表基本操作
13.双向循环链表
14.「项目实践」俄罗斯轮盘赌小游戏
第3章 栈和队列
1.什么是栈
2.顺序栈的基本操作
3.链栈的基本操作
4.「项目实践」进制转换器
5.「项目实践」括号匹配
6.什么是队列
7.顺序队列及其实现
8.链式队列及基本操作
9.「项目实践」变态的停车场管理系统
10.「项目实践」扑克牌小游戏
第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.二叉树的遍历
6.二叉树遍历(递归实现)
7.二叉树遍历(非递归实现)
8.二叉树层次遍历
9.线索二叉树
10.双向线索二叉树
11.树的双亲表示法
12.树的孩子表示法
13.树的孩子兄弟表示法
14.森林转化为二叉树
15.哈夫曼树
16.回溯算法
17.n个结点的二叉树种类
18.「项目实践」移动迷宫小游戏(初级版)
第7章 图
1.什么是图存储结构
2.什么是连通图
3.什么是生成树
4.图的顺序存储结构
5.图的邻接表存储法
6.图的十字链表存储法
7.图的邻接多重表存储法
8.深度优先搜索和广度优先搜索
9.深度优先生成树和广度优先生成树
10.普里姆算法(Prim算法)
11.克鲁斯卡尔算法(Kruskal算法)
12.重连通图
13.拓扑排序算法
14.关键路径
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.快速排序算法
8.选择排序算法
9.归并排序算法
10.基数排序算法
第11章 外部排序算法
1.什么是外部排序算法
2.多路平衡归并排序算法
3.置换选择排序算法
4.最佳归并树
第12章 数据结构与算法视频教程
1.小甲鱼数据结构与算法视频教程(98讲全)
2.郝斌数据结构与算法视频教程
3.国嵌数据结构与算法视频教程
4.上海交大数据结构与算法视频教程
5.吉林大学数据结构视频教程
6.严蔚敏数据结构视频教程
第13章 算法设计的常用思想
1.数组及其基本操作
2.散列表(哈希表)
3.栈(stack)
4.队列(queue)
5.栈实现队列
6.队列实现栈
7.链表反转
8.汉诺塔的递归实现
9.时间复杂度和空间复杂度
10.桶排序
11.冒泡排序算法
12.快速排序算法
13.插入排序算法
14.希尔排序算法
15.简单选择排序算法
16.顺序查找算法
17.二分查找算法
18.分块查找算法
19.阿拉伯数字转中文数字
20.中文数字转阿拉伯数字
21.妖怪与和尚过河问题
22.Gale-Shapley算法解决舞伴问题
23.匈牙利算法
24.关键路径算法
25.RLE压缩算法
源码下载
什么是数组
什么是数据结构
双向(循环)链表
静态链表
顺序表
什么是线性表
链表
图的存储结构
二叉树
广义表
队列(Queue)
栈(Stack)
链表的创建(尾插法)
链表的创建(头插法)
顺序表就地逆置
多项式相加
矩阵的压缩存储
树的表示方法
KMP算法(快速模式匹配算法)
二叉树的链式存储
二叉树遍历算法
链表插入节点
背包问题
链表反转算法
图的链式存储结构
矩阵转置
字符串及其存储方式
二叉树后序遍历(递归与非递归)
二叉树中序遍历(递归和非递归)
二叉树先序遍历(递归与非递归)
二叉树的顺序存储
矩阵快速转置算法
十字链表法
稀疏矩阵的三元组表示法
稀疏矩阵的存储方法(3种)
链队列的基本操作
顺序栈的基本操作(入栈和出栈)
链栈的基本操作
栈的基本操作
约瑟夫环问题
静态链表插入和删除
头节点、首元节点和头指针
链表的插入和删除
顺序表的基本操作
顺序表的删除操作
顺序表的插入操作
顺序表的创建和初始化
三元组表示稀疏矩阵
头结点和头指针
哈夫曼编码算法
数据结构文学研究助手案例解析
队列打印杨辉三角
稀疏矩阵的转置算法
农夫过河问题详解
BF算法(普通模式匹配算法)
广义表的长度和深度