随笔分类 -  数据结构

摘要:前言 在认识红黑树之前,最好你已经认识并掌握了二叉树与平衡二叉树(AVL)。AVL树是高度平衡的二叉树,它的时间复杂度大约是O(log2n),即使在最坏的情况下也是。其实AVL树最复杂的地方在于删除节点重新平衡时的处理,有可能需要多次旋转节点。而红黑树相对于AVL树降低了平衡要求,它使用红黑两种颜色 阅读全文
posted @ 2020-12-20 20:12 zliawk 阅读(83) 评论(0) 推荐(0)
摘要:前言 上一篇文章只是简单地认识下二叉树,并未提到它的缺陷。数据结构的好坏取决于时间复杂度,由于每次操作(插入、删除、查找)需要与节点比较来选择进入到左子树还是右子树,也就是说每次比较都会排除一些可能(选择左右其中一侧),当然了这是对于随机均匀分布的二叉树来说,它的时间复杂度是O(log2n),但是对 阅读全文
posted @ 2020-12-20 19:47 zliawk 阅读(204) 评论(0) 推荐(0)
摘要:堆的概念 堆实际上是一颗树,只不过在其基础上又加上新的性质,常见的堆有:二叉堆、二项堆、斐波那契堆等,其性质如下: 是一颗树,百度百科/维基百科上都说是一颗完全二叉树,但实际中二项堆并不是 父节点的值总是大于或等于(小于或等于)任何一个子节点的值,注意始终都没有说子节点之间的关系,也就是说子节点之间 阅读全文
posted @ 2020-12-19 23:11 zliawk 阅读(187) 评论(0) 推荐(0)
摘要:树的概念 探索二叉树前,先来认识下什么是树?用官方一点的话来说,树是数据元素之间具有层次关系的非线性结构,是由n(n>=0)个节点组成的有限集合,n=0时称为空树。在任意一颗非空树中,它具有了以下特性: 每棵树至多只有一个根节点。 由根节点构造出多个孩子节点,每个孩子节点只有一个父节点,而孩子节点又 阅读全文
posted @ 2020-12-19 23:05 zliawk 阅读(350) 评论(0) 推荐(0)