Android版数据结构与算法(八):二叉排序树

Android版数据结构与算法(八):二叉排序树

前两篇文章我们学习了一些树的基本概念以及常用操作,本篇我们了解一下二叉树的一种特殊形式:二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树。

一、二叉排序树定义

二叉排序树或者是一颗空树,或者是具有下列性质的二叉树:

若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值

若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值

它的左,右子树也分别为二叉排序树

也就是说二叉排序树中左子树结点值均小于根结点值,右子树节点值均大于跟节点值,左右子树同样满足上述约定。

如下图,即为一颗二叉排序树:

Android版数据结构与算法(八):二叉排序树

由二叉树定义知道,我们通过中序遍历二叉树就可以按照从小到大顺序排列二叉树中所有元素。

如上图中序遍历结果为:35, 40, 42, 45, 50, 67

二、java代码实现二叉排序树核心方法

下面我们通过java代码实现二叉排序树中的几个核心方法

我们先看下每个结点类定义如下:

1class TreeNode{ 2 private int data; 3 private TreeNode leftChild; 4 private TreeNode rightChild; 5 private TreeNode parent; 6 7 public TreeNode(int data) { 8 this.data = data; 9 this.leftChild = null; 10 this.rightChild = null; 11 this.parent = null; 12 } 13}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfgxx.html