diff --git a/Sorts/BinaryTreeSearch.java b/Sorts/BinaryTreeSearch.java new file mode 100644 index 00000000..e6a80f62 --- /dev/null +++ b/Sorts/BinaryTreeSearch.java @@ -0,0 +1,80 @@ +import java.util.Arrays; +public class TreeSort { + + public Node root; + + public TreeSort(Object x) { + root = new Node(x); + }//end TreeSort constructor + + public Node insert(Node node, Integer x) { + if (node == null) { + return node = new Node(x); + }//end if + if (x < (Integer) node.anElement) { + node.less = insert(node.less, x); + } //end if + else { + node.greater = insert(node.greater, x); + }//end else + return node; + }//end insert + + + public Node decimalInsert(Node node, Double x) { + if (node == null) { + return node = new Node(x); + }//end if + if (x < (Double) node.anElement) { + node.less = decimalInsert(node.less, x); + } //end if + else { + node.greater = decimalInsert(node.greater, x); + }//end else + return node; + }//end insert + + + public void treeSort(Node node) { + if (node != null) { + treeSort(node.less); + System.out.print(((Object) node.anElement) + ", "); + treeSort(node.greater); + }//end if + }//end TreeSort class + + + +public static void main(String args[]) { + int[] intArray = {12, 40, 9, 3, 19, 74, 7, 31, 23, 54, 26, 81, 12 }; + TreeSort ts = new TreeSort(new Integer(intArray[0])); + for (int i = 1; i < intArray.length; i++) { //sorts every index of the list one at a time + ts.insert(ts.root, new Integer(intArray[i])); //builds on the tree from a root node + }//end for + System.out.print("Integer Array Sorted in Increasing Order: "); + ts.treeSort(ts.root); + System.out.println(); //To sort a test array of integers + + Double[] decimalArray = {8.2, 1.5, 3.14159265, 9.3, 5.1, 4.8, 2.6}; + TreeSort dts = new TreeSort(new Double(decimalArray[0]).doubleValue()); + for (int i = 1; i < decimalArray.length; i++) { //sorts every index of the list one at a time + dts.decimalInsert(dts.root, new Double(decimalArray[i]).doubleValue()); //builds on the tree from a root node + }//end for + System.out.print("Decimal Array, Sorted in Increasing Order: "); + dts.treeSort(dts.root); + System.out.println(); + + String[] stringArray = {"c", "a", "e", "b","d", "dd","da","zz", "AA", "aa","aB","Hb", "Z"}; + int last = stringArray.length; + Arrays.sort(stringArray); //Uses an imported arrays method to automatically alphabetize + System.out.print("String Array Sorted in Alphabetical Order: "); + ts.insert(ts.root, last); + for(int i=0; i