![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构以及算法
知其然,知其所以然
这个作者很懒,什么都没留下…
展开
-
数据结构10之哈希表
TreeMap分析◼ 时间复杂度(平均)添加、删除、搜索:O(logn)◼ 特点Key 必须具备可比较性元素的分布是有顺序的◼ 在实际应用中,很多时候的需求Map 中存储的元素不需要讲究顺序Map 中的 Key 不需要具备可比较性◼ 不考虑顺序、不考虑 Key 的可比较性,Map 有更好的实现方案,平均时间复杂度可以达到 O(1)那就是采取哈希表来实现 Map需求分析:设计...原创 2019-12-16 18:32:52 · 358 阅读 · 0 评论 -
数据结构九之红黑树
红黑树也是一种自平衡的二叉搜索树以前也叫做平衡二叉B树(Symmetric Binary B-tree)红黑树必须满足以下 5 条性质1、节点是 RED 或者 BLACK2、根节点是 BLACK3、 叶子节点(外部节点,空节点)都是 BLACK4、 RED 节点的子节点都是 BLACK和父节点都是黑色,从根节点到叶子节点的所有路径上不能有 2 个连续的 RED 节点5、从任一节点到叶...原创 2019-12-16 17:33:11 · 169 阅读 · 0 评论 -
数据结构八之B树
B树是一种平衡的多路搜索树,多用于文件系统,数据库的实现B树的特点1、一个节点可以储存超过两个元素,可以拥有超过两个子节点2、拥有二叉搜索树的一些性质3、平衡:每个节点的子树的高度都是一样4、比较矮m阶B树的性质假设一个节点存储的元素个数为 x1:根节点元素数量:1 ≤ x ≤ m − 12:非根节点元素的数量:┌ m/2 ┐ − 1 ≤ x ≤ m − 1:如果有子节点...原创 2019-12-16 16:44:57 · 847 阅读 · 0 评论 -
数据结构七之AVL树
平衡因子:某个节点的左右子树的高差AVL树的特点:1、每个节点的平衡因子只可能为0,1,-1 (平衡因子的绝对值<=1)2、搜索、添加、删除的时间复杂度为O(logn)普通二叉搜索树和AVL树的搜索比较:树的继承结构:实例:往树中添加节点1、最坏的情况:可能会导致所有的祖先节点全部失衡2、父节点和非祖先节点都不会 失衡AVL树添加或删除节点后,通过旋转返回平衡(即把每个节点...原创 2019-12-14 00:04:07 · 158 阅读 · 0 评论 -
数据结构三之链表
上个章节学习了动态数组,我们可以知道,动态数组有个明显的缺点,就是可能会造成内存的巨大浪费,那么能否做到用到多少内存就申请多少内存呢?,答案是肯定的,链表可以。链表是一种链式储存的线性表,所有元素的地址不一定是连续的。链表细分又分为单向链表和双向链表,上图就是单项链表链表的设计及实现...原创 2019-12-10 15:51:27 · 69 阅读 · 0 评论 -
数据结构二之动态数组
在学习动态数组的时候我们先来认识一下什么是数据结构数据结构是计算机存储和组织数据的结构按照结构形式,常见的有线性结构、树形结构、图形结构1、线性结构线性表是指:具有n个相同类型元素的有限序列(n >= 0)常见的线性结构有:数组、链表、栈、队列、哈希表(散列表)2、树形结构常见的属性结构有:二叉树、二叉搜索树、平衡二叉树、AVL树、红黑树、B树等3、图形结构常见的图形...原创 2019-12-08 22:45:05 · 239 阅读 · 1 评论 -
数据结构六之树的基本概念
树形结构 树 的基本概念1、节点:根节点、父节点、子节点、兄弟节点2、空树:一棵树没有任何节点称为空树3、一棵树可以只有一个节点,即只有根节点4、子树又分左子树、右子树5、节点的度:表示子树的个数6、树的度:所有节点度中的最大值7、叶子节点:度为0的个数8、非叶子节点:度不为0的节点9、层数:根节点在第一层,根节点的子节点在第二层,以此类推10、节点的深度:从根节点到...原创 2019-12-05 19:50:21 · 629 阅读 · 0 评论 -
数据结构一之复杂度
什么是算法?算法是解决特特定问题的一系列的执行步骤例如: //计算a和b的和 public static int plus(int a,int b){ return a + b; } //计算1+2+3+4+5+.. public static int sum(int n){ int result = 0; f...原创 2019-12-05 16:12:41 · 110 阅读 · 0 评论