二叉树基础及特殊的二叉树

本文介绍了二叉树的基础知识,包括满二叉树、完全二叉树、平衡二叉树和二叉搜索树的定义与特性。强调了二叉搜索树在查找上的优势,并对比了与其他数据结构的优缺点。接着,详细阐述了二叉树的遍历方法以及序列化和反序列化的过程。最后,深入探讨了二叉搜索树的插入、删除操作,并讨论了平衡二叉树(如AVL树)和红黑树的平衡策略,以及它们在维持查找效率上的作用。
摘要由CSDN通过智能技术生成

1.二叉树的分类

  •     满二叉树:从高到低,除了叶节点外,所以节点左右节点都存在。
  •     完全二叉树:比满二叉树少几个叶节点,从左向右放子节点。
  •     平衡二叉树:空树或者它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树也都是平衡树。
  •     二叉搜索树:空树或者二叉树的所有节点比他的左子节点大,比他的右子节点小。
  •     红黑树:不仅是具有二叉搜索树的属性,还具有平衡树的属性,有序且子树差不超过1

          红黑树的颜色规则:根节点和特殊节点(即叶节点下面两个虚无的节点和未填写的节点)是黑的,红节点

的左右子节点是黑的,最重要的是对于每个节点,从该节点到子孙叶节点的所有路径包含相同数目的黑节点。

2. 二叉树在搜索上的优势

        数组利用下标,搜索方便,删除或者插入麻烦

        链表与之相反,查找很慢,删除和插入简单

        原因在于这两种数据结构的存储方式,数组是取一段相连的空间,而链表是每创建一个节点便取一个节点所

需的空间,只是使用指针进行连接,空间上并不是连续的。而二叉树就既有链表的好处,又有数组的优点。

3. 二叉树的遍历

         先序遍历(pre order):  根 左 右

         中序遍历(in order):    左 根 右

         后序遍历(post order):左 右 根

4. 二叉树的序列化和反序列化(serialize and deserialize)

        序列化:结构化数据---->顺序数据流

        反序列化:顺序数据流---->结构化数据

        二叉树的遍历可以实现二叉树的序列化,但是单独的一个遍历序列无法完成二叉树的还原,即反序列化,先

序+中序或者后序+中序可以还原二叉树。

5.1. 二叉搜索树(BST:binary search tree)

        1.定义:对于任意一个节点,其值大于左子树的任何节点,且小于右子树的任何节点,则为二叉搜索树。(空树也是BST)

        2.性质:中序遍历BST,其遍历结果是一个有序序列。因此,二叉搜索树又称为二叉排序树。

                     优:查找的最大次数为树的高度

                     缺:因其序列性,有可能会退化成单链表

        3.区分:二叉搜索树要求当前节点与其左右子树都需满足定义中的关系;最大堆(或最小堆),只要求当前节点与当前节点的左右子节点满足一定关系。

              BST是为了查找,堆是为了排序 .

            (堆是完全二叉树,插入到二叉树的最底层的最右边,逐步调整;删除只能删除堆顶节点)

        4.插入和删除:

                插入:找到对应的空位置,直接插入;否则,不做操作</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值