From ffe11488d800b99d36482fb3acdbac9ee712b31c Mon Sep 17 00:00:00 2001 From: AI <182692506+AhmedIhsan123@user.noreply.github.com> Date: Thu, 12 Feb 2026 14:45:42 -0800 Subject: [PATCH 1/5] Finished live code --- src/Traversal.java | 27 +++++++++++++++++++++++++++ src/TreeNode.java | 15 ++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/Traversal.java b/src/Traversal.java index 8da0f79..f94b2f8 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,5 +1,32 @@ public class Traversal { public static void main(String[] args) { + TreeNode root = new TreeNode(10, new TreeNode(9, new TreeNode(5, null, null), new TreeNode(2, null, null)), new TreeNode(15, new TreeNode(-3, null, null), new TreeNode(5, null, new TreeNode(22, null, null)))); + + preorder(root); + System.out.println(); + postorder(root); + System.out.println(); + inorder(root); + } + + public static void preorder(TreeNode node) { + if (node == null) return; + System.out.print(node.value + " "); + preorder(node.left); + preorder(node.right); + } + + public static void postorder(TreeNode node) { + if (node == null) return; + postorder(node.left); + postorder(node.right); + System.out.print(node.value + " "); + } + public static void inorder(TreeNode node) { + if (node == null) return; + inorder(node.left); + System.out.print(node.value + " "); + inorder(node.right); } } diff --git a/src/TreeNode.java b/src/TreeNode.java index acd9639..3b052bf 100644 --- a/src/TreeNode.java +++ b/src/TreeNode.java @@ -1,4 +1,17 @@ public class TreeNode { + // -- Instance fields -- - + // The value of the node + public int value; + + // Left and right pointers + public TreeNode left; + public TreeNode right; + + // -- Contructors -- + public TreeNode(int value, TreeNode left, TreeNode right) { + this.value = value; + this.left = left; + this.right = right; + } } \ No newline at end of file From 72193b05b32a4d4792e6af4cba5bafec239fb051 Mon Sep 17 00:00:00 2001 From: AI <182692506+AhmedIhsan123@user.noreply.github.com> Date: Tue, 17 Feb 2026 13:14:11 -0800 Subject: [PATCH 2/5] Made tree node class generic --- src/TreeNode.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/TreeNode.java b/src/TreeNode.java index 3b052bf..7b335f0 100644 --- a/src/TreeNode.java +++ b/src/TreeNode.java @@ -1,15 +1,15 @@ -public class TreeNode { +public class TreeNode { // -- Instance fields -- // The value of the node - public int value; + public T value; // Left and right pointers - public TreeNode left; - public TreeNode right; + public TreeNode left; + public TreeNode right; // -- Contructors -- - public TreeNode(int value, TreeNode left, TreeNode right) { + public TreeNode(T value, TreeNode left, TreeNode right) { this.value = value; this.left = left; this.right = right; From 5e9cbdc50779b13a32779d2a9058af026cb8ceb0 Mon Sep 17 00:00:00 2001 From: AI <182692506+AhmedIhsan123@user.noreply.github.com> Date: Tue, 17 Feb 2026 14:38:09 -0800 Subject: [PATCH 3/5] Finished live code pt 2 --- src/Traversal.java | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/src/Traversal.java b/src/Traversal.java index f94b2f8..0be6642 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,29 +1,64 @@ public class Traversal { public static void main(String[] args) { - TreeNode root = new TreeNode(10, new TreeNode(9, new TreeNode(5, null, null), new TreeNode(2, null, null)), new TreeNode(15, new TreeNode(-3, null, null), new TreeNode(5, null, new TreeNode(22, null, null)))); + TreeNode root = new TreeNode(10, new TreeNode(9, new TreeNode(5, null, null), new TreeNode(2, null, null)), new TreeNode(15, new TreeNode(-3, null, null), new TreeNode(5, null, new TreeNode(22, null, null)))); preorder(root); System.out.println(); postorder(root); System.out.println(); inorder(root); + System.out.println(); + + TreeNode stringRoot = new TreeNode("Hello", new TreeNode("how", new TreeNode("are", null, null), new TreeNode("you", null, null)), new TreeNode("I", new TreeNode("am", null, null), new TreeNode("so", null, new TreeNode("good", null, null)))); + + preorder(stringRoot); + System.out.println(); + postorder(stringRoot); + System.out.println(); + inorder(stringRoot); + System.out.println(); + + printGreater(root, 10); + System.out.println(); + + System.out.println(countNodes(root)); + } + + public static int countNodes(TreeNode node) { + int count = 0; + if (node == null) { + return 0; + } else { + count++; + count += (countNodes(node.right) + countNodes(node.left)); + } + return count; + } + + public static void printGreater(TreeNode node, int threshold) { + if (node == null) return; + if (node.value > threshold) { + System.out.print(node.value + " "); + } + printGreater(node.left, threshold); + printGreater(node.right, threshold); } - public static void preorder(TreeNode node) { + public static void preorder(TreeNode node) { if (node == null) return; System.out.print(node.value + " "); preorder(node.left); preorder(node.right); } - public static void postorder(TreeNode node) { + public static void postorder(TreeNode node) { if (node == null) return; postorder(node.left); postorder(node.right); System.out.print(node.value + " "); } - public static void inorder(TreeNode node) { + public static void inorder(TreeNode node) { if (node == null) return; inorder(node.left); System.out.print(node.value + " "); From c4e62be255ac6dcf731f33f8e116305ebf487156 Mon Sep 17 00:00:00 2001 From: AI <182692506+AhmedIhsan123@user.noreply.github.com> Date: Thu, 19 Feb 2026 14:30:18 -0800 Subject: [PATCH 4/5] Finished live code part 3 --- src/Traversal.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Traversal.java b/src/Traversal.java index 0be6642..e092ea4 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,3 +1,4 @@ +import java.util.*; public class Traversal { public static void main(String[] args) { TreeNode root = new TreeNode(10, new TreeNode(9, new TreeNode(5, null, null), new TreeNode(2, null, null)), new TreeNode(15, new TreeNode(-3, null, null), new TreeNode(5, null, new TreeNode(22, null, null)))); @@ -9,7 +10,7 @@ public static void main(String[] args) { inorder(root); System.out.println(); - TreeNode stringRoot = new TreeNode("Hello", new TreeNode("how", new TreeNode("are", null, null), new TreeNode("you", null, null)), new TreeNode("I", new TreeNode("am", null, null), new TreeNode("so", null, new TreeNode("good", null, null)))); + TreeNode stringRoot = new TreeNode("Hello", new TreeNode("Hello", new TreeNode("am", null, null), new TreeNode("am", null, null)), new TreeNode("I", new TreeNode("am", null, null), new TreeNode("so", null, new TreeNode("good", null, null)))); preorder(stringRoot); System.out.println(); @@ -22,6 +23,23 @@ public static void main(String[] args) { System.out.println(); System.out.println(countNodes(root)); + System.out.println(toMap(stringRoot)); + + } + + public static Map toMap(TreeNode node) { + Map counts = new HashMap<>(); + toMap(node, counts); + return counts; + } + + private static void toMap(TreeNode node, Map counts) { + if (node == null) { + return; + } + counts.put(node.value, counts.getOrDefault(node.value, 0) + 1); + toMap(node.left, counts); + toMap(node.right, counts); } public static int countNodes(TreeNode node) { From 6a73681bc8808c8d0509439731a5bc4b60eb7d38 Mon Sep 17 00:00:00 2001 From: AI <182692506+AhmedIhsan123@user.noreply.github.com> Date: Tue, 24 Feb 2026 14:35:24 -0800 Subject: [PATCH 5/5] live code day 4 --- src/Traversal.java | 85 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 69 insertions(+), 16 deletions(-) diff --git a/src/Traversal.java b/src/Traversal.java index e092ea4..6b45ddb 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -3,29 +3,82 @@ public class Traversal { public static void main(String[] args) { TreeNode root = new TreeNode(10, new TreeNode(9, new TreeNode(5, null, null), new TreeNode(2, null, null)), new TreeNode(15, new TreeNode(-3, null, null), new TreeNode(5, null, new TreeNode(22, null, null)))); - preorder(root); - System.out.println(); - postorder(root); - System.out.println(); - inorder(root); - System.out.println(); + // preorder(root); + // System.out.println(); + // postorder(root); + // System.out.println(); + // inorder(root); + // System.out.println(); TreeNode stringRoot = new TreeNode("Hello", new TreeNode("Hello", new TreeNode("am", null, null), new TreeNode("am", null, null)), new TreeNode("I", new TreeNode("am", null, null), new TreeNode("so", null, new TreeNode("good", null, null)))); - preorder(stringRoot); - System.out.println(); - postorder(stringRoot); - System.out.println(); - inorder(stringRoot); - System.out.println(); + TreeNode megaRoot = new TreeNode(1, null, null); - printGreater(root, 10); - System.out.println(); + TreeNode current = megaRoot; - System.out.println(countNodes(root)); - System.out.println(toMap(stringRoot)); + for (int i = 2; i < 5000; i++) { + current.right = new TreeNode(i, null, null); + current = current.right; + } + + // preorder(megaRoot); + + levelOrder(root); + + // System.out.println("Preorder Recursive: "); + // preorder(root); + // System.out.println(); + // System.out.println("Preorder Iterative"); + // preOrderIter(megaRoot); + // System.out.println(); + + // System.out.println(); + + // preorder(stringRoot); + // System.out.println(); + // postorder(stringRoot); + // System.out.println(); + // inorder(stringRoot); + // System.out.println(); + + // printGreater(root, 10); + // System.out.println(); + + // System.out.println(countNodes(root)); + // System.out.println(toMap(stringRoot)); } + + public static void levelOrder(TreeNode node){ + Queue> queue = new LinkedList<>(); + + queue.add(node); + + while(!queue.isEmpty()){ + TreeNode current = queue.poll(); + + if(current == null){ + continue; + } + + System.out.print(current.value + " "); + queue.add(current.left); + queue.add(current.right); + } + } + + public static void preOrderIter(TreeNode node) { + Stack> stack = new Stack<>(); + stack.push(node); + + while(!stack.isEmpty()) { + TreeNode current = stack.pop(); + if (current == null) continue; + System.out.print(current.value + " "); + stack.push(current.right); + stack.push(current.left); + } + } public static Map toMap(TreeNode node) { Map counts = new HashMap<>();