aboutsummaryrefslogtreecommitdiffstats
path: root/SelfBalancingBinarySearchTree.java
diff options
context:
space:
mode:
authorjwansek <eddie.atten.ea29@gmail.com>2021-05-17 23:23:14 +0100
committerjwansek <eddie.atten.ea29@gmail.com>2021-05-17 23:23:14 +0100
commitc37e08f643475a1a3fb3e2e3f5d4cf81297970d7 (patch)
tree65b51aa28ee5c9eee73446b1326a852cb80762fa /SelfBalancingBinarySearchTree.java
parente3e864c484f871ee6b306c2899a8919f17f8ccc4 (diff)
downloadJavaDataStructures-Algorithms-c37e08f643475a1a3fb3e2e3f5d4cf81297970d7.tar.gz
JavaDataStructures-Algorithms-c37e08f643475a1a3fb3e2e3f5d4cf81297970d7.zip
added heap data structureHEADmaster
Diffstat (limited to 'SelfBalancingBinarySearchTree.java')
-rw-r--r--SelfBalancingBinarySearchTree.java93
1 files changed, 57 insertions, 36 deletions
diff --git a/SelfBalancingBinarySearchTree.java b/SelfBalancingBinarySearchTree.java
index efb6ab2..31a5343 100644
--- a/SelfBalancingBinarySearchTree.java
+++ b/SelfBalancingBinarySearchTree.java
@@ -95,6 +95,12 @@ public class SelfBalancingBinarySearchTree<T extends Comparable<T>> {
}
return leftHeight - rightHeight;
}
+
+ public void leftRotate() {
+ BinaryTreeNode<T> newRoot = getRightChild();
+ newRoot.leftChild = this;
+ this.rightChild = newRoot.getLeftChild();
+ }
}
public static class DuplicateItemException extends Exception {
@@ -380,47 +386,62 @@ public class SelfBalancingBinarySearchTree<T extends Comparable<T>> {
public static void main(String[] args) {
SelfBalancingBinarySearchTree<Integer> bst = new SelfBalancingBinarySearchTree<>();
+ // try {
+ // bst.recursiveAdd(25);
+ // bst.recursiveAdd(15);
+ // bst.recursiveAdd(50);
+ // bst.recursiveAdd(10);
+ // bst.recursiveAdd(22);
+ // bst.iterativeAdd(35);
+ // bst.iterativeAdd(70);
+ // bst.iterativeAdd(4);
+ // bst.iterativeAdd(12);
+ // bst.iterativeAdd(18);
+ // bst.iterativeAdd(24);
+ // bst.iterativeAdd(31);
+ // bst.iterativeAdd(44);
+ // bst.iterativeAdd(66);
+ // bst.iterativeAdd(90);
+ // } catch (DuplicateItemException e) {
+ // e.printStackTrace();
+ // }
+
+ // System.out.println("In-Order Traversal:");
+ // for (Integer s : bst.new InOrderIterator()) {
+ // System.out.print(s + ", ");
+ // }
+ // System.out.println("");
+ // System.out.println("\nPre-Order Traversal:");
+ // for (Integer s : bst.new PreOrderIterator()) {
+ // System.out.print(s + ", ");
+ // }
+ // System.out.println("");
+ // System.out.println("\nPost-Order Traversal:");
+ // for (Integer s : bst.new PostOrderIterator()) {
+ // System.out.print(s + ", ");
+ // }
+ // System.out.println("");
+ // System.out.println("\nBreadth first Traversal:");
+ // for (Integer s : bst.new BreadthFirstIterator()) {
+ // System.out.print(s + ", ");
+ // }
+ // System.out.println("\n");
try {
- bst.recursiveAdd(25);
- bst.recursiveAdd(15);
- bst.recursiveAdd(50);
- bst.recursiveAdd(10);
- bst.recursiveAdd(22);
- bst.iterativeAdd(35);
- bst.iterativeAdd(70);
- bst.iterativeAdd(4);
- bst.iterativeAdd(12);
- bst.iterativeAdd(18);
- bst.iterativeAdd(24);
- bst.iterativeAdd(31);
- bst.iterativeAdd(44);
- bst.iterativeAdd(66);
- bst.iterativeAdd(90);
+ bst.recursiveAdd(9);
+ bst.recursiveAdd(6);
+ bst.recursiveAdd(20);
+ bst.recursiveAdd(4);
+ bst.recursiveAdd(7);
+ bst.iterativeAdd(15);
+ bst.iterativeAdd(26);
+ bst.iterativeAdd(22);
+ bst.iterativeAdd(30);
} catch (DuplicateItemException e) {
e.printStackTrace();
}
- System.out.println("In-Order Traversal:");
- for (Integer s : bst.new InOrderIterator()) {
- System.out.print(s + ", ");
- }
- System.out.println("");
- System.out.println("\nPre-Order Traversal:");
- for (Integer s : bst.new PreOrderIterator()) {
- System.out.print(s + ", ");
- }
- System.out.println("");
- System.out.println("\nPost-Order Traversal:");
- for (Integer s : bst.new PostOrderIterator()) {
- System.out.print(s + ", ");
- }
- System.out.println("");
- System.out.println("\nBreadth first Traversal:");
- for (Integer s : bst.new BreadthFirstIterator()) {
- System.out.print(s + ", ");
- }
- System.out.println("\n");
-
+ System.out.println(bst);
+ bst.root.leftRotate();
System.out.println(bst);
}
} \ No newline at end of file