aznishboy

BSTree

Mar 9th, 2012
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 2.65 KB | None | 0 0
  1. public class BSTree {
  2.     private TreeNode root;
  3.     public BSTree(){
  4.         root = null;
  5.     }
  6.     public void insert(Comparable obj){
  7.         root = insert(root, obj);
  8.     }
  9.     private TreeNode insert (TreeNode node, Comparable obj){
  10.         if (node == null)
  11.             node = new TreeNode (obj, null, null);
  12.         else{
  13.             if (obj.compareTo(node.getValue()) < 0)
  14.                 node.setLeft(insert(node.getLeft(), obj));
  15.             else node.setRight(insert(node.getRight(), obj));
  16.         }
  17.         return node;
  18.     }
  19.     public Object find(Comparable obj){
  20.         Object found = find (root, obj);
  21.         if (found == null)
  22.             return null;
  23.         else return found;
  24.     }
  25.     public Object find (TreeNode node, Comparable obj){
  26.         if (node == null)
  27.             return null;
  28.         else if (obj.compareTo(node.getValue()) == 0)
  29.             return node.getValue();
  30.         else if (obj.compareTo(node.getValue()) < 0)
  31.             return find (node.getLeft(), obj);
  32.         else return find (node.getRight(), obj);
  33.     }
  34.     public void remove(){
  35.         System.out.println("asdfkljaf");
  36.     }
  37.     public void inOrder(){
  38.         inOrder(root);
  39.     }
  40.     private void inOrder(TreeNode node){
  41.         if (node != null){
  42.             inOrder(node.getLeft());
  43.             System.out.println(node.getValue());
  44.             inOrder(node.getRight());
  45.         }
  46.     }
  47.     public int countNode(){
  48.         return countNode(root);
  49.     }
  50.     private int countNode(TreeNode node){
  51.         if (node == null)
  52.             return 0;
  53.         else return countNode(node.getLeft()) + 1 + countNode(node.getRight());
  54.     }
  55.     public void preOrder(){
  56.         preOrder(root);
  57.     }
  58.     private void preOrder(TreeNode node){
  59.         if (node != null){
  60.             System.out.println(node.getValue());
  61.             preOrder(node.getLeft());
  62.             preOrder(node.getRight());
  63.         }
  64.     }
  65.     public void postOrder(){
  66.         postOrder(root);
  67.     }
  68.     private void postOrder(TreeNode node){
  69.         if (node != null){
  70.             postOrder(node.getLeft());
  71.             postOrder(node.getRight());
  72.             System.out.println(node.getValue());
  73.         }
  74.     }
  75.     public int countLeaves(){
  76.         return countLeaves(root);
  77.     }
  78.     private int countLeaves(TreeNode node){
  79.         if (node == null)
  80.             return 0;
  81.         else if (node.getLeft() == null && node.getRight() == null)
  82.             return 1;
  83.         else return countLeaves(node.getLeft())+ 0 + countLeaves(node.getRight());
  84.     }
  85.     public int findHeight(){
  86.         return findHeight(root);
  87.     }
  88.     private int findHeight(TreeNode node){
  89.         if(node == null)
  90.             return 0;
  91.         else return Math.max(findHeight(node.getLeft()), findHeight(node.getRight())) + 1;
  92.     }
  93.     public int findWidth(){
  94.         return findWidth(root);
  95.     }
  96.     private int findWidth(TreeNode node){
  97.         if (node != null)
  98.             return Math.max(Math.max(findWidth(node.getLeft()), findWidth(node.getRight())), (findHeight(node.getLeft()) + findHeight(node.getRight()) + 1));
  99.         else return 0;
  100.     }
  101.     public void clearTree(){
  102.         root = null;
  103.     }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment