一、二叉树介绍

  二叉查找树(Binary Search Tree,BST),又称二叉排序树,也称二叉搜索树,它或者是一颗空树,或者具有如下性质的树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值;若它的右子树不为空,则右子树上所有节点的值都大于根节点的值。它的左右子树也分别为二叉查找树。

  结论:中序遍历一颗二叉查找树可以得到一个按关键字递增的有序序列。简单来说,比根小的往左边放  比根大的往右边放。

    二叉查找树(BST)的实现

二、代码实现

  1、BST结点类:

 1 public class BSTNode<K, V> {
 2     public K key;
 3     public V value;
 4     public BSTNode<K, V> left;
 5     public BSTNode<K, V> right;
 6     public BSTNode<K, V> parent;
 7     public boolean isLeftChild;
 8     public int height;
 9     public int num;
10     public boolean isRed = true;  // 后面才学习的红黑树
11 
12     public BSTNode() {
13     }
14 
15     public BSTNode(K key, V value, BSTNode<K, V> left, BSTNode<K, V> right, BSTNode<K, V> parent) {
16         super();
17         this.key = key;
18         this.value = value;
19         this.left = left;
20         this.right = right;
21         this.parent = parent;
22     }
23 
24     public boolean isLeft() {
25         return isLeftChild;
26     }
27 
28     public boolean isRight() {
29         return !isLeftChild;
30     }
31 
32     @Override
33     public String toString() {
34         return (isRed ? "红色" : "黑色") + " [" + key + "]<-" + (parent == null ? "" : parent.key);
35     }
36 }
View Code

相关文章:

  • 2022-01-19
  • 2021-07-06
  • 2021-12-13
  • 2022-12-23
  • 2021-06-20
  • 2021-10-12
  • 2021-12-08
猜你喜欢
  • 2022-12-23
  • 2021-04-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-03-30
  • 2021-10-20
相关资源
相似解决方案