From c37e08f643475a1a3fb3e2e3f5d4cf81297970d7 Mon Sep 17 00:00:00 2001 From: jwansek Date: Mon, 17 May 2021 23:23:14 +0100 Subject: added heap data structure --- SelfBalancingBinarySearchTree.java | 93 +++++++++++++++++++++++--------------- 1 file changed, 57 insertions(+), 36 deletions(-) (limited to 'SelfBalancingBinarySearchTree.java') 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> { } return leftHeight - rightHeight; } + + public void leftRotate() { + BinaryTreeNode newRoot = getRightChild(); + newRoot.leftChild = this; + this.rightChild = newRoot.getLeftChild(); + } } public static class DuplicateItemException extends Exception { @@ -380,47 +386,62 @@ public class SelfBalancingBinarySearchTree> { public static void main(String[] args) { SelfBalancingBinarySearchTree 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 -- cgit v1.2.3