二叉树的插入排序

本文介绍了二叉树的概念,包括定义、种类如满二叉树、完全二叉树和排序二叉树,以及平衡二叉树的重要性。重点讲解了二叉排序树的特性,即左子树所有节点值小于根节点,右子树所有节点值大于根节点。同时,讨论了二叉树的遍历方式,包括先序、中序和后序遍历,并指出中序遍历可用于二叉排序树的排序。最后,提到了通过链表手动实现二叉树及其添加节点的方法。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、二叉树是什么?

在学习二叉树之前要先了解树的基本概念:
1.树:一种表示层次关系的(一对多)的数据结构.
a.有且只有一个特定的节点(结点),该节点没有前驱,被称为根节点.
b.剩余的n个互不相交的子集,其中每个子集也都是一棵树,被称为根节点的子树
如我们电脑中的根目录就相当于是一个根节点,而根目录下的各个次级目录就相当于是根目录的子节点;又因为次级目录之间没有联系(互不相交)所以每个次级目录都是一棵树,都是根节点的子树;
在这里插入图片描述2.树的表示方式:
树的表示方式有倒悬树(如上图)、嵌套法、凹凸法

二、二叉树

1.定义

各个节点下最多只有两个节点的树(即一对二)
特点:
a.普通树可以很方便的转变成二叉树,二叉树的节点数量最多为2
b.二叉树是n个有限元素的集合,由一个称为根(root)的元素
以及两个不想交的,被分别称为左子树/右子树,组成有序树.
c.当集合为空时,就称之为空二叉树.
在这里插入图片描述

2.二叉树的种类

  1. 满二叉树
    二叉树的第i层最多有2^(i-1)个节点
    每层的节点数都是2^(i-1),这种叫做满二叉树
    在这里插入图片描述

  2. 完全二叉树
    对树中的节点,从上至下,从左至右的顺序进行编号,如果编号为i(1≤i≤n)的节点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵树称之为完成二叉树.(即在满二叉树的情况下,完全二叉树的最后一层子节点数可以从右向左减少)
    和满二叉树的区别:完全二叉树最后一层可以不满
    在这里插入图片描述

  3. 排序二叉树
    二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。
    定义一: (Java中使用)
    一棵空树,或者是具有下列性质的二叉树:
    (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
    (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
    (3)左、右子树也分别为二叉排序树;
    (4)没有键值相等的结点。
    即:左 < 根 < 右
    定义二:
    一棵空树,或者是具有下列性质的二叉树:
    (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
    (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值