package binarytree;
public class Test1 {
static class Node{
int data;
Node left;
Node right;
public Node(int data){
this.data=data;
left=null;
right=null;
}
}
static class BST{
Node root;
//root结点
public BST(Node root){
this.root=root;
}
//插入操作
private Node insert(Node node,int data){
if (null==node){
return new Node(data);
}
if (node.data>data){
node.left=insert(node.left,data);
}else if (node.data<data){
node.right=insert(node.right,data);
}
return node;
}
//插入操作
public void insert(int data){
insert(root,data);
}
}
public static void main(String[] args) {
BST bst = new BST(new Node(1));
bst.insert(2);
bst.insert(0);
bst.insert(4);
bst.insert(60);
preorderTraversal(bst);
find(bst,4);
}
public static void preorderTraversal(BST bst){
preorderTraversal(bst.root);
}
private static void preorderTraversal(Node node){
if (node==null){
return;
}
//先序遍历
System.out.println(node.data);
preorderTraversal(node.left);
preorderTraversal(node.right);
}
//查找二叉树指定的数,根据二叉树左子节点小于父节点,和右子节点大于父节点的特性来递归查找
private static Node find(Node node,int data){
if (node.data==data){
return node;
}
if (node.data>data){
return find(node.left,data);
}else{
return find(node.right,data);
}
}
//查找二叉树指定的数,根据二叉树左子节点小于父节点,和右子节点大于父节点的特性来递归查找
public static void find(BST bst,int data){
Node node = find(bst.root, data);
System.out.println(node.data);
}
}
二叉搜索数-查找结点
最新推荐文章于 2024-03-25 18:55:55 发布