
二叉树专题
文章平均质量分 70
介绍各个二叉树的基本原来
ZhengXinTang
习重要! 学而实习之, 才叫学习!
只学而不习, 不实践, 这叫本末倒置, 丢了大头顾小头;
因缘际会,所有巧合即为 和合事物;
当一个人悄悄的在反省时,努力时,改过时, 命运的齿轮便被他转动了。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
5.1广度优先遍历的递归与迭代实现;
队列先进先出的性质, 符合 广度优先遍历时, 一层一层的遍历逻辑;lc1021. 迭代实现:新建节点型 队列, 使用容器适配器queue;如果根节点不为空, 将根节点入队;新建二维向量容器 result, 用于层序的存放节点中元素;条件循环, 当队列不为空:记录当前 队列的大小为 len1;新建一个 一维向量容器 res;循环遍历, 当前队列;当前节点 等于 取出队列的第一个元素,头节点的引用;删除队列的第一个节点;一维向量容器中, 添加当前节点中的数值;当前节点的左子树.原创 2022-05-02 14:15:10 · 1595 阅读 · 0 评论 -
(一)树(高度,深度)与二叉树的实现
1. 树2. 二叉树原创 2022-03-24 20:20:56 · 3948 阅读 · 0 评论 -
(二)二叉树的遍历方式
1. 二叉树的主要遍历方式大的框架上主要有, 纵向 和 横向 两种:深度优先遍历: 先往深处走, 遇到叶子节点后在往回走;广度优先 遍历: 一层 一层的 遍历;这两种遍历方式 也是 图论中 最基本的两种遍历方式;那么从深度优先遍历和广度优先遍历进一步拓展,才有如下遍历方式:深度优先遍历前序遍历(递归法,迭代法)中序遍历(递归法,迭代法)后序遍历(递归法,迭代法)广度优先遍历层次遍历(迭代法)2. 二叉树的深度优先遍历在深度优先遍历中:有三个顺序,前中后序遍原创 2022-03-24 21:39:44 · 821 阅读 · 0 评论 -
(三)二叉树的深度优先遍历(前中后序)的递归实现
(三)二叉树的深度优先遍历(前中后序)的递归实现原创 2022-03-29 15:37:11 · 765 阅读 · 0 评论 -
3.1 深度优先遍历的递归方式
深度优先遍历 包括三种: 前中后 序 三种 遍历;这三种遍历都可以通过 递归的方法解决;递归的思路:确定递归函数此时大家可以做一做leetcode上三道题目,分别是:144.二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历1. 前序遍历的递归方式递归函数的编写;先序遍历函数:新建vector 容器,用于存放遍历的结果;调用递归函数;返回 遍历结果;class Solution {public: void traversal(TreeNode*.原创 2022-04-29 15:41:39 · 1733 阅读 · 0 评论 -
(四)二叉树深度优先遍历的迭代实现
(四)二叉树的深度优先遍历(前中后序)的迭代实现原创 2022-03-31 18:26:52 · 676 阅读 · 0 评论 -
4.1深度优先遍历的迭代方式
1. 前序遍历的迭代方式1. 前序遍历的迭代方式. 前序遍历的迭代方式原创 2022-04-30 15:55:14 · 1310 阅读 · 0 评论 -
4.2 深度优先遍历的 迭代法的统一实现
前面介绍了深度优先遍历的 , 前中后序 三种遍历方式的迭代实现, 但是却没有向 递归那样的 统一实现;原因 在于, 使用迭代方式的遍历过程中, 有两点注意访问节点( 将节点压入栈中);处理节点(将节点从栈中取出, 然后将节点中的数据部分存入到结果集中);在前序遍历中, 访问节点与 处理节点这两个步骤 可以同步进行, 而中序遍历则不行;难道 二叉树前后中序遍历的迭代法实现,就不能风格统一么(即前序遍历 改变代码顺序就可以实现中序 和 后序)迭代法的 统一实现思想造成.原创 2022-05-01 14:57:42 · 830 阅读 · 0 评论 -
(五)二叉树的广度优先遍历的递归实现与迭代实现
(五)二叉树的广度优先遍历(层序遍历)的迭代实现原创 2022-04-01 20:41:13 · 2572 阅读 · 2 评论 -
6.0 二叉搜索树
之前我们刚刚讲过优先级队列其实是一个堆,堆就是一棵完全二叉树,同时保证父子节点的顺序关系。1. 二叉搜索树 定义前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树。若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树下面这两棵树都是搜索树‘...原创 2022-04-29 14:26:42 · 122 阅读 · 0 评论 -
7 平衡二叉搜索树
1. 平衡二叉搜索树定义平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。如图:最后一棵 不是平衡二叉树,因为它的左右两个子树的高度差的绝对值超过了1。C++中map、set、multimap,multiset的底层实现都是平衡二叉搜索树,所以map、set的增删操作时间时间复杂度是logn,注意unordered_map、原创 2022-04-29 14:26:07 · 1700 阅读 · 0 评论 -
(八)红黑树的理解
前文, 六, 七 应该先介绍 , 二叉搜索树, 平衡二叉树;1. 为什么会有红黑树为了解决在大数据量情况下, 二叉树的性能退化为链表, 时间复杂度从 O(log2(N))O(log_2(N))O(log2(N))也退化为 O(N)O(N)O(N) 的问题;1.1 为什么需要平衡二叉搜索树二叉搜索树: x为二叉查找树中的一个结点,x节点包含关键字key,特点:左孩子比父节点小,右孩子比父节点大,”中序遍历“可以让结点有序。有了二叉搜索树,为什么还需要平衡二叉搜索树?二叉搜索树在原创 2022-04-15 09:51:46 · 336 阅读 · 0 评论