树
文章平均质量分 76
菜鸡爱玩
通信工程 小趴菜
展开
-
红黑树,AVLTree树(平衡二叉树)迭代器原理讲解
end()),是不等于end节点,所以在遍历完右子树后就像上返回找类似于下图中绿色的parent节点了(右子树遍历完向上找),所以遍历完整颗二叉树后,就会向上找节点,到了父节点的父亲时就为空了,也就是end节点,所以就停止遍历了。简单叙述以下,二叉树上面迭代器的运行逻辑,根据下面的图,迭代器的begin就是二叉树的最左节点,end是二叉树根节点的父节点(NULL)。为什么要这样设计,因为平衡二叉树在中序遍历下是升序排列,所以只有首部begin在二叉树最左节点,向后++遍历时,才能打印有序数据。原创 2023-11-12 18:37:45 · 111 阅读 · 0 评论 -
红黑树——原理刨析
红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的,所以不是平衡二叉树。如上图,就是红黑树。原创 2023-11-06 13:10:49 · 199 阅读 · 2 评论 -
二叉树刷题——递归
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。如下图所示数据范围:输入二叉树的节点数 0≤10000≤n≤1000,二叉树中每个节点的值 0≤10000≤val≤1000要求:空间复杂度O(1)(即在原树上操作),时间复杂度O(n)注意:1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继2.返回链表中的第一个节点的指针。原创 2023-11-03 20:54:05 · 128 阅读 · 1 评论 -
BSTree二叉树讲解
再比如统计单词次数,统计成功后,给定单词就可快速找到其出现的次数,单词与其出。首先查找元素是否在二叉搜索树中,如果不存在,则返回, 否则要删除的结点可能分下面四种情。看起来有待删除节点有4中情况,实际情况a可以与情况b或者c合并起来,因此真正的删除过程。a、从根开始比较,查找,比根大则往右边走查找,比根小则往左边走查找。每一个关键码key,都有与之对应的值Value,即的键值对。比如英汉词典就是英文与中文的对应关系,通过英文可以快速找到与其对应的中文,英。原创 2023-10-29 23:42:26 · 161 阅读 · 0 评论 -
AVLTree代码刨析
AVLTree是高度平衡二叉树每一个节点的左右子树高度差都小于2,这是AVLTree高度平衡的由来,他是在平衡二叉树的基础上进行特殊的处理(旋转:如果该节点不满足高度平衡二叉树的特点就进行旋转旋转目的是为了调整该节点左右子树高度差 促使其达到高度平衡二叉树AVLTree节点之间是通过三叉链(里面存有三个节点:)进行链接的 这样做为了更好的用迭代器去遍历二叉树AVLTree缺点也很明显,旋转次数太多,但红黑树旋转就较少,所以AVLTree树的建立较耗时间,红黑树肯会更优。原创 2023-10-08 14:21:37 · 81 阅读 · 0 评论 -
从中序遍历和后序遍历构建二叉树
中等1.1K相关企业给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗二叉树。原创 2023-09-25 23:06:06 · 188 阅读 · 0 评论 -
左叶子之和
虽然属于简单 但该题有点意思原创 2023-08-02 12:59:35 · 88 阅读 · 0 评论