算法——二叉排序树的建立中序遍历
Posted 高、远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法——二叉排序树的建立中序遍历相关的知识,希望对你有一定的参考价值。
【1】代码:
①Node节点
package algorithm.tree.binarySortTree_BST;
public class Node {
int val;
Node left;
Node right;
public Node(int val) {
this.val = val;
}
@Override
public String toString() {
return val+"";
}
public void add(Node node){
if(node == null)
return;
if (node.val<this.val){
if (this.left == null){
this.left = node;
}else{
//向左递归添加
this.left.add(node);
}
}else{
if (this.right == null){
this.right = node;
}else{
//右节点不为空就递归添加
this.right.add(node);
}
}
}
}
②BST binarySortTree二叉排序树:
package algorithm.tree.binarySortTree_BST;
public class BTS {
//根节点
Node root;
//添加
public void add(Node n){
if (root == null){
root = n;
}else{
root.add(n);
}
}
//给外部中序遍历的接口
public void show(){
midOrder(root);
}
//中序遍历
private void midOrder(Node n){
//左边
if (n == null)
return;
if (n.left != null){
midOrder(n.left);
}
//打印
System.out.println(n);
//右边
if (n.right != null){
midOrder(n.right);
}
}
}
③ 测试代码:
package algorithm.tree.binarySortTree_BST;
public class Test {
public static void main(String[] args) {
int[] arr = {4, 6, 2, 12, 45, 5, 123, 6, 2};
BTS tree = new BTS();
for (int t:arr) {
tree.add(new Node(t));
}
tree.show();
}
}
【2】测试结果:
- 待测试数据:
- 结果:
以上是关于算法——二叉排序树的建立中序遍历的主要内容,如果未能解决你的问题,请参考以下文章