数据结构 | 二分搜索树及它的各种操作(kotlin实现)

2022-02-09 13:49:58 浏览数 (1)

在开始之前,应该先讲一下什么是二叉树。

什么是二叉树?

二叉树

一个null树也叫做二叉树,就算只有一个根节点,也是二叉树

左斜树&右斜树

二叉树中每个节点方向相同,全部节点只有左子节点的称为左斜树,只有右子节点的称为右斜树。

满二叉树

除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树。

完全二叉树

完全二叉树是由满二叉树而引出来的,若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数(即1~h-1层为一个满二叉树),第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。

什么是二分搜索树(Binary Search Tree)?

  • 二分搜索树是二叉树;
  • 二分搜索树的每个节点的值大于其左子树所有节点的值,小于其右子树的所有节点的值,简称 左小右大
  • 每一颗字数也是二分搜索树;
  • 存储的元素必须有可比较性;

二叉树的遍历

前序遍历

先遍历 节点e,再遍历左子树,最后遍历右子树

中序遍历

先遍历 左子树,再遍历节点e,最后遍历右子树

后序遍历

先遍历左子树,再遍历右子树,最后遍历节点e

0 人点赞