代码随想录 Day 13 | 【第六章 二叉树】理论基础、递归遍历、迭代遍历、层序遍历

一、理论基础

需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义。

文章讲解:代码随想录

1. 二叉树的种类

(1)满二叉树:

        如果一棵树只有度为0和度为2的结点,并且度为0的结点在同一层,则这种二叉树为满二叉树。

(2)完全二叉树:底部从左到右连续

        在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点。之前优先级队列其实是一个堆,堆就是一棵完全二叉树,同时保证父子节点的顺序关系。

        满二叉树一定是完全二叉树。

(3)二叉搜索树

        树有了数值就是二叉搜索树,二叉搜索树是一个有序树。

        若左子树不为空,则左子树的所有结点都小于根结点的值;若右子树不为空,则右子树的所有结点都大于根结点的值;它的左右子树也分别为二叉排序树。

(4)平衡二叉搜索树(AVL)

        性质:1)是一颗空树;2)或它的左右两个子树的高度差的绝对值不超过1,并且左右两颗子树都是一棵平衡二叉树。

2. 二叉树的存储方式

(1)链式存储:指针,链式存储则是通过指针把分布在各个地址的节点串联一起。

(2)顺序存储:数组,顺序存储的元素在内存是连续分布的。

数组存储树如何进行遍历:如果父节点的数组下标是 i,那么它的左孩子就是 i * 2 + 1,右孩子就是 i * 2 + 2。

3. 二叉树的遍历方式

(1)深度优先遍历:先往深走,遇到叶子结点再往回走。

  • 前序遍历(递归法,迭代法)
  • 中序遍历(递归法,迭代法)
  • 后序遍历(递归法,迭代法)

(2)广度优先遍历:一层一层去遍历。

  • 层次遍历(迭代法)

4. 二叉树的定义

        二叉树的定义 和链表是差不多的,相对于链表 ,二叉树的节点里多了一个指针, 有两个指针,指向左右孩子。

        二叉树是一种基础数据结构,在算法面试中都是常客,也是众多数据结构的基石。

        本篇我们介绍了二叉树的种类、存储方式、遍历方式以及定义,比较全面的介绍了二叉树各个方面的重点,帮助大家扫一遍基础。

        说到二叉树,就不得不说递归,很多同学对递归都是又熟悉又陌生,递归的代码一般很简短,但每次都是一看就会,一写就废。

5. 总结

二、递归遍历 (必须掌握)

二叉树的三种递归遍历掌握其规律后,其实很简单.

题目链接/文章讲解/视频讲解:代码随想录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值