From c3ba695a643b1e295987a957f19ee3a24307b8f6 Mon Sep 17 00:00:00 2001 From: SChandrasekhar96 Date: Tue, 1 Jul 2025 19:32:38 +0530 Subject: [PATCH 1/5] Add Binary Search Implemetation --- .../thealgorithms/tree/BinarySearchTree.java | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/main/java/com/thealgorithms/tree/BinarySearchTree.java diff --git a/src/main/java/com/thealgorithms/tree/BinarySearchTree.java b/src/main/java/com/thealgorithms/tree/BinarySearchTree.java new file mode 100644 index 000000000000..dba33ed94e50 --- /dev/null +++ b/src/main/java/com/thealgorithms/tree/BinarySearchTree.java @@ -0,0 +1,91 @@ +package com.thealgorithms.tree; + +public class BinarySearchTree { + class Node { + int key; + Node left,right; + Node(int key){ + this.key = key; + left = right = null; + } + + } + + Node root; + + public void insert(int key){ + root = insertRec(root,key); + } + + public Node insertRec(Node root, int key){ + if(root == null){ + return new Node(key); + } + if(key < root.key){ + root.left = insertRec(root.left,key); + }else if (key > root.key){ + root.right = insertRec(root.right,key); + } + return root; + } + + public void inorder(){ + inorderRec(root); + } + + void inorderRec(Node root){ + if(root != null){ + inorderRec(root.left); + System.out.print(root.key + " "); + inorderRec(root.right); + } + } + + public void preOrder(){ + preOrderRec(root); + } + + void preOrderRec(Node root){ + if(root !=null){ + System.out.print(root.key + " "); + preOrderRec(root.left); + preOrderRec(root.right); + } + } + + public void postOrder(){ + postOrderRec(root); + } + + void postOrderRec(Node root){ + if(root!=null){ + postOrderRec(root.left); + postOrderRec(root.right); + System.out.print(root.key + " "); + } + } + + public static void main(String[] args) { + BinarySearchTree tree = new BinarySearchTree(); + // tree.insert(50); + // tree.insert(30); + // tree.insert(20); + // tree.insert(40); + // tree.insert(70); + // tree.insert(60); + // tree.insert(80); + + System.out.println("Inorder traversal of the given tree"); + tree.inorder(); + System.out.println(); + + System.out.println("Preorder traversal of the given tree"); + tree.preOrder(); + System.out.println(); + + System.out.println("Postorder traversal of the given tree"); + tree.postOrder(); + System.out.println(); + } +} + From c188912261983d93e7e4ba5cecfa6772d6577757 Mon Sep 17 00:00:00 2001 From: SChandrasekhar96 Date: Tue, 1 Jul 2025 19:40:35 +0530 Subject: [PATCH 2/5] Add Binary Search Implemetation --- .../com/thealgorithms/tree/BinarySearchTree.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/thealgorithms/tree/BinarySearchTree.java b/src/main/java/com/thealgorithms/tree/BinarySearchTree.java index dba33ed94e50..f1b4a7fbe56d 100644 --- a/src/main/java/com/thealgorithms/tree/BinarySearchTree.java +++ b/src/main/java/com/thealgorithms/tree/BinarySearchTree.java @@ -67,13 +67,13 @@ void postOrderRec(Node root){ public static void main(String[] args) { BinarySearchTree tree = new BinarySearchTree(); - // tree.insert(50); - // tree.insert(30); - // tree.insert(20); - // tree.insert(40); - // tree.insert(70); - // tree.insert(60); - // tree.insert(80); + tree.insert(50); + tree.insert(30); + tree.insert(20); + tree.insert(40); + tree.insert(70); + tree.insert(60); + tree.insert(80); System.out.println("Inorder traversal of the given tree"); tree.inorder(); From d8ec12484a0e6635679d623c48f1e062a87f9b48 Mon Sep 17 00:00:00 2001 From: SChandrasekhar96 Date: Tue, 1 Jul 2025 19:57:58 +0530 Subject: [PATCH 3/5] Fix: clang format for BinarySearchTree.java --- .../thealgorithms/tree/BinarySearchTree.java | 44 +++++++++---------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/thealgorithms/tree/BinarySearchTree.java b/src/main/java/com/thealgorithms/tree/BinarySearchTree.java index f1b4a7fbe56d..970c5b87cfc9 100644 --- a/src/main/java/com/thealgorithms/tree/BinarySearchTree.java +++ b/src/main/java/com/thealgorithms/tree/BinarySearchTree.java @@ -3,62 +3,61 @@ public class BinarySearchTree { class Node { int key; - Node left,right; - Node(int key){ + Node left, right; + Node(int key) { this.key = key; left = right = null; } - } Node root; - public void insert(int key){ - root = insertRec(root,key); + public void insert(int key) { + root = insertRec(root, key); } - public Node insertRec(Node root, int key){ - if(root == null){ + public Node insertRec(Node root, int key) { + if (root == null) { return new Node(key); } - if(key < root.key){ - root.left = insertRec(root.left,key); - }else if (key > root.key){ - root.right = insertRec(root.right,key); + if (key < root.key) { + root.left = insertRec(root.left, key); + } else if (key > root.key) { + root.right = insertRec(root.right, key); } return root; } - public void inorder(){ + public void inorder() { inorderRec(root); } - - void inorderRec(Node root){ - if(root != null){ + + public void inorderRec(Node root) { + if (root != null) { inorderRec(root.left); System.out.print(root.key + " "); inorderRec(root.right); } } - public void preOrder(){ + public void preOrder() { preOrderRec(root); } - void preOrderRec(Node root){ - if(root !=null){ + public void preOrderRec(Node root) { + if (root != null) { System.out.print(root.key + " "); preOrderRec(root.left); preOrderRec(root.right); } } - public void postOrder(){ + public void postOrder() { postOrderRec(root); } - void postOrderRec(Node root){ - if(root!=null){ + public void postOrderRec(Node root) { + if (root != null) { postOrderRec(root.left); postOrderRec(root.right); System.out.print(root.key + " "); @@ -68,7 +67,7 @@ void postOrderRec(Node root){ public static void main(String[] args) { BinarySearchTree tree = new BinarySearchTree(); tree.insert(50); - tree.insert(30); + tree.insert(30); tree.insert(20); tree.insert(40); tree.insert(70); @@ -88,4 +87,3 @@ public static void main(String[] args) { System.out.println(); } } - From 06e3866d13b4c38513132446cbb78dae4246206a Mon Sep 17 00:00:00 2001 From: SChandrasekhar96 Date: Tue, 1 Jul 2025 20:03:59 +0530 Subject: [PATCH 4/5] Fix: Checkstyle violations - variable declaration and inner assignment --- .../java/com/thealgorithms/tree/BinarySearchTree.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/thealgorithms/tree/BinarySearchTree.java b/src/main/java/com/thealgorithms/tree/BinarySearchTree.java index 970c5b87cfc9..2a8bf9da072c 100644 --- a/src/main/java/com/thealgorithms/tree/BinarySearchTree.java +++ b/src/main/java/com/thealgorithms/tree/BinarySearchTree.java @@ -3,10 +3,12 @@ public class BinarySearchTree { class Node { int key; - Node left, right; + Node left; + Node right; Node(int key) { this.key = key; - left = right = null; + left = null; + right = null; } } @@ -18,7 +20,8 @@ public void insert(int key) { public Node insertRec(Node root, int key) { if (root == null) { - return new Node(key); + root = new Node(key); + return root; } if (key < root.key) { root.left = insertRec(root.left, key); From ea1f5f899a5760616d1fc9c9ad39b8eeab8b5787 Mon Sep 17 00:00:00 2001 From: SChandrasekhar96 Date: Tue, 1 Jul 2025 20:16:13 +0530 Subject: [PATCH 5/5] Fix: Removed main method to satisfy PMD rule --- .../thealgorithms/tree/BinarySearchTree.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/thealgorithms/tree/BinarySearchTree.java b/src/main/java/com/thealgorithms/tree/BinarySearchTree.java index 2a8bf9da072c..68bcea52e599 100644 --- a/src/main/java/com/thealgorithms/tree/BinarySearchTree.java +++ b/src/main/java/com/thealgorithms/tree/BinarySearchTree.java @@ -67,26 +67,26 @@ public void postOrderRec(Node root) { } } - public static void main(String[] args) { - BinarySearchTree tree = new BinarySearchTree(); - tree.insert(50); - tree.insert(30); - tree.insert(20); - tree.insert(40); - tree.insert(70); - tree.insert(60); - tree.insert(80); + // public static void main(String[] args) { + // BinarySearchTree tree = new BinarySearchTree(); + // tree.insert(50); + // tree.insert(30); + // tree.insert(20); + // tree.insert(40); + // tree.insert(70); + // tree.insert(60); + // tree.insert(80); - System.out.println("Inorder traversal of the given tree"); - tree.inorder(); - System.out.println(); + // System.out.println("Inorder traversal of the given tree"); + // tree.inorder(); + // System.out.println(); - System.out.println("Preorder traversal of the given tree"); - tree.preOrder(); - System.out.println(); + // System.out.println("Preorder traversal of the given tree"); + // tree.preOrder(); + // System.out.println(); - System.out.println("Postorder traversal of the given tree"); - tree.postOrder(); - System.out.println(); - } + // System.out.println("Postorder traversal of the given tree"); + // tree.postOrder(); + // System.out.println(); + // } }