java二叉查找算法_Java手写二叉搜索树算法
package com.zyizou.basis.demo.tree;
/**
* 手寫二叉搜索樹的邏輯
*
* @author zibin
*/
public class BinarySearchTrees {
/**
* 值
*/
int data;
/**
* 左子樹
*/
BinarySearchTrees left;
/**
* 右子樹
*/
BinarySearchTrees right;
public BinarySearchTrees(int data) {
this.data = data;
}
/**
* 插入數據
*
* @param root
* @param data
*/
public void insert(BinarySearchTrees root, int data) {
//如果當前值小于根節點的值,放在左子樹
if (data < root.data) {
if (root.left == null) {
root.left = new BinarySearchTrees(data);
} else {
insert(root.left, data);
}
} else {
//如果當前值大于根節點的值,放在右子樹
if (root.right == null) {
root.right = new BinarySearchTrees(data);
} else {
insert(root.right, data);
}
}
}
/**
* 搜索數據
*
* @param root
*/
public void search(BinarySearchTrees root) {
if (root != null) {
search(root.left);
System.out.println(root.data);
search(root.right);
}
}
public static void main(String[] args) {
int data[] = {5, 9, 1, 8, 7, 2};
BinarySearchTrees root = new BinarySearchTrees(data[0]);
for (int i = 1; i < data.length; i++) {
root.insert(root, data[i]);
}
root.search(root);
}
}
總結
以上是生活随笔為你收集整理的java二叉查找算法_Java手写二叉搜索树算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java8 stringbuilder_
- 下一篇: java进阶 2018_Java Web