![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
《数据结构》课程笔记
文章平均质量分 94
参考书目主要为 王道考研系列的《数据结构》。该系列为本人准备考研时所整理。
描述语言为C语言,部分代码采用了C++风格的描述方式。
Xiao____Q
退役ACMer
展开
-
各种内排序汇总
文章目录八、排序8.1 排序的基本概念8.2 插入排序8.2.1 直接插入排序8.2.2 折半插入排序8.2.3 希尔排序8.3 交换排序8.3.1 冒泡排序8.3.2 快速排序8.4 选择排序8.4.1 简单选择排序8.4.2 堆排序8.5 归并排序8.6 基数排序8.7 内排序的比较及应用8.8 examples八、排序8.1 排序的基本概念排序,就是重新排列表中的元素,使表中的元素满足按关键字有序的过程。为了查找方便,通常希望计算机中的表是按关键字有序的。确切定义:输入n个记录 R1,R原创 2021-01-17 19:38:18 · 373 阅读 · 0 评论 -
查找(线性查找 B树 散列表)
文章目录七、查找7.1 查找的基本概念7.2 顺序查找7.3 折半查找7.4 分块查找7.5 B树和B+树7.5.1 B树及其基本操作7.5.1.1 B树的高度7.5.1.2 B树的查找7.5.1.3 B树的插入7.5.1.4 B树的删除7.5.2 B+树的基本概念7.6 散列表7.6.1 散列表的基本概念7.6.2 散列函数的构造方法7.6.3 处理冲突的方法7.6.4 散列查找及性能分析七、查找7.1 查找的基本概念查找。数据集合中寻找满足某种条件的数据元素的过程。结果一般分为两种:查找成功和查原创 2021-01-17 19:37:39 · 219 阅读 · 0 评论 -
图(图的存储 图的遍历 图的应用 AOV网 AOE网)
文章目录六、图6.1 图的基本概念6.1.1 图的定义6.1.2 图的存储6.1.2.1 邻接矩阵6.1.2.2 邻接表6.1.2.3 十字链表6.1.2.4 邻接多重表6.1.3 图的基本操作6.2 图的遍历6.2.1 广度优先搜索 BFS6.2.2 深度优先搜索 DFS6.3 图的应用6.3.1 最小生成树6.3.1.1 Prim算法6.3.1.2 Kruskal算法6.3.2 最短路径6.3.2.1 Dijkstra算法6.3.2.2 Floyd算法6.3.2.4 拓扑排序 - AOV网6.3.2.5原创 2021-01-17 19:36:46 · 338 阅读 · 0 评论 -
树、二叉树(下)(森林 二叉排序树 平衡二叉树 哈夫曼树和哈夫曼编码)
文章目录5.6 森林5.6.1 树的存储结构5.6.1.1 双亲表示法5.6.1.2 孩子表示法5.6.1.3 孩子兄弟表示法5.6.2 树、森林与二叉树的转换5.6.3 树和森林的遍历5.6.4 并查集5.7 二叉排序树5.7.1 二叉排序树的定义5.7.2 二叉排序树的查找5.7.3 二叉排序树的插入5.7.4 二叉排序树的构造5.7.5 二叉排序树的删除5.7.6 二叉排序树的查找效率分析5.8 平衡二叉树5.8.1 平衡二叉树的定义5.8.2 平衡二叉树的插入5.8.2.1 LL平衡旋转(右单旋转)原创 2021-01-17 19:36:07 · 323 阅读 · 0 评论 -
树、二叉树(上)(二叉树的遍历 线索二叉树)
文章目录五、树、二叉树5.1 树5.1.1 树的基本概念5.1.2 树的基本术语5.1.3 树的性质5.2 二叉树5.2.1 二叉树定义和特性5.2.2 特殊二叉树5.2.3 二叉树的性质5.2.4 二叉树的存储结构5.2. examples - 15.3 二叉树的遍历5.3.1 先序遍历5.3.2 中序遍历5.3.3 后序遍历5.3.4 三种遍历总结5.3.5 非递归算法5.3.5.1 中序遍历非递归实现5.3.5.2 先序遍历非递归实现5.3.5.3 后序遍历非递归实现5.3.6 层次遍历5.3.7 由原创 2021-01-17 19:35:28 · 226 阅读 · 0 评论 -
串(模式匹配 KMP 算法)
文章目录四、串4.1 串的定义4.2 串的存储结构4.3 串的基本操作4.4 串的模式匹配4.4.1 简单模式匹配算法4.4.2 改进的模式匹配算法 - KMP4.4.2.1 改进方向4.4.2.2 最长相等前后缀4.4.2.3 next 数组4.4.2.5 KMP代码部分4.4.2.6 next函数进一步优化 - nextval四、串4.1 串的定义字符串简称串。串(String)是由零个或多个字符组成的有限序列,一般记为 S=′a1a2...an′ (n≥0)S原创 2021-01-17 19:34:41 · 385 阅读 · 0 评论 -
栈、队列、特殊矩阵
文章目录三、栈、队列、矩阵3.1 栈3.1.1 顺序栈3.1.2 共享栈3.1.3 链栈3.1.4 example3.2 队列3.2.1 顺序存储3.2.2 循环队列3.2.3 链式存储3.2.4 双端队列3.2.5 example3.2.6 队列在计算机系统中的应用3.3 特殊矩阵三、栈、队列、矩阵3.1 栈栈是只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但限定这种线性表只能在一端进行插入和删除操作。栈顶(Top) - 允许插入删除的一端栈底(Bottom) - 固定的,不允许插原创 2021-01-17 19:34:01 · 198 阅读 · 0 评论 -
线性结构(顺序表 链表 双指针法总结)
文章目录二、线性结构2.1 线性表的定义2.2 顺序表2.2.1 顺序表2.2.2 examples - 12.3 链式表示2.3.1 单链表2.3.2 双链表2.3.3 循环链表2.3.4 静态链表2.3.5 双指针法合集2.3.6 examples - 22.4 顺序表和链表的比较二、线性结构2.1 线性表的定义线性表是具有相同数据类型的n(n≥0)n(n \geq 0)n(n≥0)个数据元素的有限序列,n为表长。n=0n=0n=0时线性表是一个空表。若用L命名线性表,一般表示为: L=(a1,原创 2021-01-17 19:33:12 · 318 阅读 · 0 评论 -
数据结构绪论(基本概念 复杂度)
文章目录一、绪论1.1 数据结构的基本概念1.2 算法和算法评价一、绪论一个程序应该包含两个方面的内容:对数据的描述:数据结构(data structure)对操作的描述:算法(algorithm)计算机科学家沃斯提出一个公式:数据结构 + 算法 = 程序完整的程序设计应该是:数据结构 + 算法 + 程序设计方法 + 语言工具广义地说,为解决一个问题而采取的方法和步骤,称为“算法”。计算机算法可以分为两大类别:数值运算算法:求数值解,例如求方程的根、函数的定积分等。非数值计算:如图原创 2021-01-17 19:32:39 · 158 阅读 · 0 评论