首页 > 编程语言 > 详细

二叉树: 二叉排序树的构建

时间:2020-04-14 17:03:31      阅读:65      评论:0      收藏:0      [点我收藏+]

 

问题描述:

构建一个二叉排序树。

知识点:二叉排序树或者是一棵空树,或者具有如下性质:

    (1)若它的左子树不空,则左子树上所有节点的值均小于根节点的值;

    (2)若它的右子树不空,则右子树上所有节点的值均大于根节点的值;

    (3)它的左右子树也分别为二叉排序树。


算法实现:

class Node {

public int value;
public Node left;
public Node right;

public Node(int value) {
this.value = value;
}

@Override
public String toString() {
return "Node [value = " + value + " ]" ;
}

public void addNode(Node node) {

if (node == null) {
return;
}

if (node.value < this.value) {
if (this.left == null) {
this.left = node;
} else {
this.left.addNode(node);
}
} else {
if (this.right == null) {
this.right = node;
} else {
this.right.addNode(node);
}
}
}
}

 

//创建二叉排序树
class BinarySortTree {

private Node root;

public void add(Node node) {
if(root == null) {
root = node;
} else {
root.addNode(node);
}
}

public Node getRoot() {
return root;
}
}

 

算法分析:

1.构建节点,并在节点类中实现"增加新节点"到二叉排序树中方法;

2.通过节点类,实现构建二叉排序树的类,并提供返回二叉排序树头结点的方法。

 

二叉树: 二叉排序树的构建

原文:https://www.cnblogs.com/heibingtai/p/12699155.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!