public class BST_Recursive {
private Node m_root;
///Binary Search Tree Find Recursive Solution
public Node findNode(int value){
return findHelper(m_root, value);
}
private Node findHelper(Node node, int value){
Node cur = node;
int currval = cur.getValue();
if( currval == value) return cur;
if( currval < value){
findHelper( cur.getRight(), value);
}
else
findHelper( cur.getLeft(), value);
return cur;
}
///Binary Search Tree Insertion Recursive Solution
public void insertNode(int value){
if(m_root ==null){
m_root = new Node(value, null,null);
}
else
insertHelper(m_root, value);
}
private void insertHelper(Node node, int value){
Node cur = node;
int currval = cur.getValue();
if( currval == value){
return;
}
else if( currval < value){
if( cur.getRight() == null)
cur.setRight(new Node(value,null,null));
else
insertHelper(cur.getRight(), value);
}
else
{
if( cur.getLeft() == null)
cur.setLeft(new Node(value,null,null));
else
insertHelper(cur.getLeft(), value);
}
}
///Binary Search Tree In-Order Traversal Recursive Solution
public void showInOrder(){
System.out.println("In Order: ");
showInOrderHelper(m_root);
}
private void showInOrderHelper(Node node){
if( node != null){
showInOrderHelper(node.getLeft());
node.printValue();
showInOrderHelper(node.getRight());
}
}
///Binary Search Tree Pre-Order Traversal Recursive Solution
public void showPreOrder(){
System.out.println("Pre Order: ");
showPreOrderHelper(m_root);
}
private void showPreOrderHelper(Node node){
if( node != null){
node.printValue();
showPreOrderHelper(node.getLeft());
showPreOrderHelper(node.getRight());
}
}
///Binary Search Tree Post-Order Traversal Recursive Solution
public void showPostOrder(){
System.out.println("Post Order: ");
showPostOrderHelper(m_root);
}
private void showPostOrderHelper(Node node){
if( node != null){
showPostOrderHelper(node.getLeft());
showPostOrderHelper(node.getRight());
node.printValue();
}
}
}
BST_Recursive class in Java---第一遍实现
最新推荐文章于 2024-10-08 10:48:37 发布