
数据结构
Ssssun_369
学生
展开
-
【数据结构】—— chapter 06 图的存储及基本操作 (part1)
文章目录6.2 图的存储及基本操作6.2.1 邻接矩阵法6.2.2 邻接表法6.2.3 十字链表6.2.4 邻接多重表6.2 图的存储及基本操作6.2.1 邻接矩阵法数组实现的顺序存储。用一维数组存顶点信息,二维数组存储图中边的信息(此二维数组称为邻接矩阵)。无向图、有向图对应的邻接矩阵:网对应的邻接矩阵:所谓的网就是带权图。邻接矩阵法的一些要点6.2.2 邻接表法顺序+链式存储。对图G的每个顶点建立一个单链表。与树中的孩子表示法相同。邻接表存储结构原创 2020-10-10 19:43:53 · 319 阅读 · 0 评论 -
【数据结构】—— chapter 05 树与二叉树的应用 (part4)
文章目录5.5 树与二叉树的应用5.5.1 二叉排序树1. 二叉排序树的定义5.5 树与二叉树的应用5.5.1 二叉排序树1. 二叉排序树的定义原创 2020-07-15 15:35:14 · 263 阅读 · 0 评论 -
【数据结构】—— chapter 05 树、森林 (part3)
文章目录5.4 树、森林5.4.1 树的存储结构1. 双亲表示法(顺序存储)2. 孩子表示法(顺序+链式存储)3. 孩子兄弟表示法(链式存储)5.4.2 树、森林与二叉树的转换1. 树与二叉树的相互转换2. 森林与二叉树的相互转换3. 小结5.4.3 树和森林的遍历1. 树的遍历2. 森林的遍历3. 小结5.4 树、森林5.4.1 树的存储结构树的存储方式有很多种,既可以采用顺序存储结构,又可以采用链式存储结构,但无论采用何种存储方式,都要求唯一地反映树中各结点之间的逻辑关系,这里介绍3种常用原创 2020-07-14 14:50:44 · 1237 阅读 · 0 评论 -
【数据结构】—— chapter 05 二叉树的遍历和线索二叉树 (part2)
文章目录5.3 二叉树的遍历和线索二叉树5.3.1 二叉树的遍历1. 先序遍历2. 中序遍历3. 后序遍历4. 遍历算数表达式树5. 层次遍历6. 由遍历序列构造二叉树5.3.2 线索二叉树1. 引言2. 线索二叉树的存储结构3. 手算画出线索二叉树4. 二叉树的线索化(代码)5. 线索二叉树找前驱/后继(代码)5.3 二叉树的遍历和线索二叉树5.3.1 二叉树的遍历遍历:按照某种次序把所有结点都访问一遍。层次遍历:基于树的层次特性确定的次序规则。先/中/后序遍历:基于树的递归特性确定的次序规则。原创 2020-07-12 15:14:47 · 920 阅读 · 0 评论 -
【数据结构】—— chapter 05 树与二叉树的概念 (part1)
文章目录5.1 树的基本概念5.1.1 树的定义5.1.2 基本术语5.1.3 树的性质5.2 二叉树的概念5.2.1 二叉树的定义及其主要特性5.1 树的基本概念5.1.1 树的定义5.1.2 基本术语1. 结点之间的关系描述2. 结点、树的属性描述3. 有序树、无序树4. 森林5.1.3 树的性质1. 树中的结点数等于所有结点的度数加1。【 结点的度 —— 结点有几个孩子(分支)】2. 度为m的树、m叉树的区别3.4.5.6.小结5.2 二叉树原创 2020-07-10 14:08:28 · 329 阅读 · 0 评论 -
【数据结构】—— chapter 04 串
文章目录4.1 串的定义和实现4.1.1 串的定义4.1.2 串的基本操作4.1.3 串的存储结构4.2 串的模式匹配4.2.1 简单的模式匹配算法4.2.1 改进的模式匹配算法 —— KMP算法1. 步步模拟得到next数组 + Kmp算法代码2. next数组手算方法3. next数组算法代码 + Kmp算法代码4.2.3 KMP算法的进一步优化 —— nextval数组4.1 串的定义和实现4.1.1 串的定义 串是一种特殊的线性表,数据元素之间呈线性关系 ;串的数据对象限定为字符集原创 2020-07-09 11:15:57 · 576 阅读 · 0 评论 -
【数据结构】 —— chapter 03 栈和队列的应用
栈在括号匹配中的应用用栈实现括号匹配:依次扫描所有字符,遇到左括号入栈,遇到右括号则弹出栈项元素检查是否匹配。匹配失败情况:①左括号单身②右括号单身③左右括号不匹配代码如下:[ main.h头文件,写栈的基本操作,如下 ]#include<stdio.h>#include <malloc.h>#include <stdlib.h>#define MaxSize 100typedef struct { char data[MaxSize]; i原创 2020-07-07 14:14:03 · 679 阅读 · 0 评论 -
【数据结构】—— chapter 02 线性表
文章目录2.1 线性表的定义与基本操作2.1.1 线性表的定义2.1.2 线性表的基本操作2.1.3 小结2.2 线性表的顺序表示2.2.1 顺序表的定义2.2.2 顺序表上基本操作的实现2.3 线性表的链式表示2.3.1 单链表的定义2.3.2 单链表上基本操作的实现2.3.3 双链表2.3.4 循环链表2.3.5 静态链表2.3.6 顺序表和链表的比较2.1 线性表的定义与基本操作2.1.1 线性表的定义线性表是具有相同数据类型的n (n≥0) 个数据元素的有限序列,其中n为表长,当n=0时线性原创 2020-05-16 13:10:41 · 644 阅读 · 0 评论 -
【数据结构】—— chapter 01 绪论
文章目录1.1 数据结构的基本概念1.1.1 基本概念和术语1.1.2 数据结构三要素1.1.3 小结1.2 算法和算法评价1.2.1 算法的基本概念1.2.2 算法效率的度量1.1 数据结构的基本概念1.1.1 基本概念和术语数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机识别和处理的符号的集合。数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素由若干数据项组成。eg:学生记录就是一个数据元素,它 由学号、姓名、性别等数据项原创 2020-05-12 22:30:03 · 381 阅读 · 0 评论 -
Union-find并查集
Union-find算法一、动态连通性1.动态连通性问题(1)在这里,当且仅当两个对象相连时它们才属于同一个等价类。 p与q相连,意味着q与p相连; p与q相连,q与r相连,则意味着p与r相连。此时说明p,q,r是同一等价类。(2)我们的目标是编写一个程序来过滤掉序列中无意义的整数对(两个整数均来自于同一等价类)。(3)为了达到预期效果,我们需要设计一个 数据结构(并查集)来保...原创 2019-11-17 14:00:15 · 235 阅读 · 0 评论 -
时间复杂度
文章目录时间复杂度衡量代码好坏的指标事前分析估算方法函数的渐近增长算法的时间复杂度常见的时间复杂度常数阶线性阶平方阶对数阶时间复杂度衡量代码好坏的指标运行时间占用空间事前分析估算方法由于运行环境和输入规模的影响,代码执行的绝对时间是无法估计的。但是我们可以计算代码的基本操作次数,用这个来衡量时间复杂度。举例子:函数的渐近增长算法的时间复杂度常见的时间复杂度常数阶...原创 2019-07-28 13:18:39 · 1726 阅读 · 1 评论 -
递归思想
参考了别人的讲解后,按自己理解写一下。提醒自己:递归理解不要太扣细节,抓的细反而不好理解。文章目录1.创造递归把握两个点2.递归和循环的生动解释3.递归思想的内涵(递归的精髓是什么?)3.1递去3.2归来3.2 递归思想的精髓4.递归的应用场景5.用代码加深理解1.创造递归把握两个点递归出口分解为子问题,将大规模问题缩小2.递归和循环的生动解释引用自知乎用户李继刚(https:/...原创 2019-07-26 21:14:17 · 262 阅读 · 0 评论