![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 67
ganggeaizhuzhu
这个作者很懒,什么都没留下…
展开
-
二叉树的四种遍历方式
系列文章目录历史文章:平衡二叉树红黑树目录系列文章目录前言一、四种遍历方式二、代码实战前言本文主要讲述二叉树的几种遍历方式,以及代码实战一、四种遍历方式1.前序遍历:先访问根节点,后访问左节点,最后右节点2.中序遍历:先访问左节点,后访问根节点,最后右节点3.后续遍历:先访问左节点,后访问右节点,最后根节点4.层次遍历:一层一层访问,广度优先总结:前中后序遍历采用DFS思想,即压栈,先进后出,层次遍历需要采用BFS思想,利用队列,先进先出的思想实现二、代码实战package原创 2021-04-22 16:13:01 · 791 阅读 · 0 评论 -
红黑树及代码实战
红黑树详解及代码实战历史文章回顾:平衡二叉树目录红黑树详解及代码实战前言一、红黑树特性二、插入节点三、代码实战前言本文主要讲解红黑树的插入实现,从原理到代码实战一、红黑树特性1.任何节点非黑即红2.根节点是黑色,3.新节点是红色,叶子空节点是黑色4.红节点不能相连5.从任何一个节点出发经历的黑色节点数要一样由此:红黑树非绝对平衡树,但由3、4点特性,可保证最大高度差不会超过两倍(最短全黑,最长红黑相间)二、插入节点新插入得节点因默认红色,所以只可能打破特性4,即父节点是红色原创 2021-04-22 15:58:41 · 143 阅读 · 0 评论 -
平衡二叉树及代码实战
平衡二叉树详解平衡二叉树的插入1.特性2.旋转3.代码实战平衡二叉树的插入本文主要讲解平衡二叉树的节点插入时,怎么保证平衡,理解其旋转原理,对后续红黑树的学习也很重要1.特性对于树中任意一个节点,其左节点比右节点小,左子树高度与右子树高度差绝对值不能大于1。为此在插入元素时,AVL树使用左旋以及右旋来保证这个特性2.旋转AVL树插入时涉及四种旋转:右旋、左旋、先左后右、先右后左2.1.右旋:左子作父,父为右子,右孙变左孙通俗讲:当前节点因左子树高不平衡后,需要拉升左子树,即将其左子升为父,自原创 2021-04-22 15:18:25 · 156 阅读 · 0 评论