
数据结构
文章平均质量分 81
Emperor10
这个作者很懒,什么都没留下…
展开
-
回溯算法DFS应用
文章目录一、算法思想二、算法模板三、经典例题一、算法思想回溯算法实际上是将多叉树结构的问题,采用类似枚举的方式,把问题的所有可能性全部罗列出来。当在搜索的过程中发现不满足给定条件的选项,就将该分支去掉,这个操作通常被称为“剪枝”,再回退到上一步(回溯),尝试别的路径,直到最后找完所有路径。二、算法模板将问题转化为多叉树结构三、经典例题...原创 2021-11-13 14:29:23 · 1546 阅读 · 3 评论 -
数据结构之队列
文章目录1 概念2 底层继承3 结构定义4 基本方法1 概念只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstIn First Out)入队列:进行插入操作的一端称为队尾(Tail/Rear)出队列:进行删除操作的一端称为队头(Head/Front)2 底层继承如下图所示,Java中的Queue接口的底层是一个双向链表LinkedList。3 结构定义结构定义class Node { private int val;原创 2021-08-28 23:40:45 · 107 阅读 · 0 评论 -
数据结构之栈
文章目录1 概念2 底层继承3 顺序栈4 链栈1 概念一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。2 底层继承如下图所示,Java中的Stack继承于Vctor,但是Vector在Java已经过时了,我们现在用的是栈,他的底层是一个数组,所以由此原创 2021-08-28 23:28:43 · 132 阅读 · 0 评论 -
平衡二叉树AVL
文章目录一、 相关概念1.1 AVL定义1.2 平衡因子1.3 AVL的作用二、 失衡调整2.1 LL型2.2 RR型2.3 LR型2.4 RL型一、 相关概念1.1 AVL定义平衡二叉树又称为AVL树,它或者是颗空树,或者是具有下列性质的二叉排序树:左右两个子树的高度差值不超过1;它的左右子树也是一颗平衡二叉树;1.2 平衡因子某节点的左子树与右子树的高度差即为该节点的平衡因子BF。按照定义我们可以得到,AVL上所有结点的平衡因子只可能是 -1,0 或 1。下面这张图中标出了每一原创 2021-08-21 00:20:38 · 876 阅读 · 6 评论 -
二叉搜索树BST总结
文章目录1. 概念2. 基本操作2.1 查找2.2 插入2.3 删除3. 性能分析1. 概念二叉搜索树又称二叉排序树,一颗BST应该满足以下特点:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值;若它的右子树不为空,则右子树上所有节点的值都大于根节点的值;上图就是一颗二叉搜索树,对它进行中序遍历后得到的结果是[1,2,3,4,5,6,7,8,9],我们不难发现它是一个递增的序列,注意这是二叉搜索树的一个重要性质:BST中序遍历的结果呈增序排列。在很多涉及BST的问题中都要先考原创 2021-08-19 17:56:44 · 345 阅读 · 4 评论 -
二叉树基础
文章目录一、 树相关概念1. 重要概念2. 了解概念3. 树的表示形式二、 二叉树1. 概念2. 二叉树的性质3. 满二叉树与完全二叉树4. 二叉树的存储5. 二叉树的遍历5.1 递归遍历5.2 非递归遍历6. 二叉树的基本操作一、 树相关概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。1. 重要概念以下是树中比较重要的一些概念,需要重点掌握,但无需死记硬背,照着下面的图理解即可;节点的度:一个节点含有的子树的个数;树的度:树中最大的节点的度;原创 2021-08-18 01:08:06 · 274 阅读 · 4 评论