From 2db828a3992910f2da895449e069f210e34110a0 Mon Sep 17 00:00:00 2001 From: Connor Date: Thu, 12 Feb 2026 14:49:01 -0800 Subject: [PATCH 1/4] In-class assignment work --- src/Traversal.java | 64 ++++++++++++++++++++++++++++++++++++++++++++++ src/TreeNode.java | 9 +++++++ 2 files changed, 73 insertions(+) diff --git a/src/Traversal.java b/src/Traversal.java index 8da0f79..b113c81 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,5 +1,69 @@ public class Traversal { public static void main(String[] args) { + TreeNode root = new TreeNode(10, null, null); + + root.left = new TreeNode(9, null, null); + root.left.left = new TreeNode(5, null, null); + root.left.right = new TreeNode(2, null, null); + root.right = new TreeNode(15, null, null); + root.right.left = new TreeNode(-3, null, null); + + root.right.right = new TreeNode(5, null, null); + root.right.right.right = new TreeNode(22, null, null); + + // preOrder(root); + // postOrder(root); + inOrder(root); + } + + // print a tree rooted at the given node in pre-order + public static void preOrder(TreeNode node){ + + // if null, return + if(node == null){ + return; + } + // print value + System.out.println(node.value); + // taverse left + preOrder(node.left); + // traverse right + preOrder(node.right); + } + + + + public static void postOrder(TreeNode node){ + // if null, return + if(node == null){ + return; + } + // taverse left + postOrder(node.left); + // traverse right + postOrder(node.right); + // print value + System.out.println(node.value); } + + public static void inOrder(TreeNode node){ + // if null, return + if(node == null){ + return; + } + // taverse left + inOrder(node.left); + // print value + System.out.println(node.value); + + // traverse right + inOrder(node.right); + } + + + + + + } diff --git a/src/TreeNode.java b/src/TreeNode.java index acd9639..89a9022 100644 --- a/src/TreeNode.java +++ b/src/TreeNode.java @@ -1,4 +1,13 @@ + public class TreeNode { + public int value; + public TreeNode left; + public TreeNode right; + public TreeNode(int value, TreeNode left, TreeNode right){ + this.value = value; + this.left = left; + this.right = right; + } } \ No newline at end of file From 6a08d85ed1a0c2ca75e1d9a88eb0491d06ca69e1 Mon Sep 17 00:00:00 2001 From: Connor Date: Tue, 17 Feb 2026 14:36:38 -0800 Subject: [PATCH 2/4] Livecode inclass - count nodes in trees --- src/Traversal.java | 72 ++++++++++++++++++++++++++++++++++++++-------- src/TreeNode.java | 11 +++---- 2 files changed, 66 insertions(+), 17 deletions(-) diff --git a/src/Traversal.java b/src/Traversal.java index b113c81..4fe67cb 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,24 +1,45 @@ public class Traversal { + public static void main(String[] args) { - TreeNode root = new TreeNode(10, null, null); + TreeNode root = new TreeNode(10, null, null); + + root.left = new TreeNode(9, null, null); + root.left.left = new TreeNode(5, null, null); + root.left.right = new TreeNode(2, null, null); + + root.right = new TreeNode(15, null, null); + root.right.left = new TreeNode(-3, null, null); - root.left = new TreeNode(9, null, null); - root.left.left = new TreeNode(5, null, null); - root.left.right = new TreeNode(2, null, null); + root.right.right = new TreeNode(5, null, null); + root.right.right.right = new TreeNode(22, null, null); - root.right = new TreeNode(15, null, null); - root.right.left = new TreeNode(-3, null, null); + + TreeNode stringRoot = new TreeNode("Root", null, null); + stringRoot.left = new TreeNode("car", null, null); + stringRoot.left.left = new TreeNode("dog", null, null); + stringRoot.left.right = new TreeNode("cat", null, null); + + stringRoot.right = new TreeNode("house", null, null); + stringRoot.right.left = new TreeNode("hello", null, null); - root.right.right = new TreeNode(5, null, null); - root.right.right.right = new TreeNode(22, null, null); + stringRoot.right.right = new TreeNode("goodbye", null, null); + stringRoot.right.right.right = new TreeNode("bonito flakes", null, null); // preOrder(root); // postOrder(root); - inOrder(root); + // inOrder(root); + + + // inOrder(stringRoot); + + // printGreater(root, 4); + + + System.out.println(countNodes(root)); } // print a tree rooted at the given node in pre-order - public static void preOrder(TreeNode node){ + public static void preOrder(TreeNode node){ // if null, return if(node == null){ @@ -34,7 +55,7 @@ public static void preOrder(TreeNode node){ - public static void postOrder(TreeNode node){ + public static void postOrder(TreeNode node){ // if null, return if(node == null){ return; @@ -47,7 +68,7 @@ public static void postOrder(TreeNode node){ System.out.println(node.value); } - public static void inOrder(TreeNode node){ + public static void inOrder(TreeNode node){ // if null, return if(node == null){ return; @@ -61,9 +82,36 @@ public static void inOrder(TreeNode node){ inOrder(node.right); } + public static void printGreater(TreeNode node, int n){ + if(node == null){ + return; + } + if(node.value > n){ + System.out.println(node.value); + } + printGreater(node.left, n); + printGreater(node.right, n); + }; + + + + public static int countNodes(TreeNode node){ + //leftCount = count nodes on left + //rightCount = count nodes on right + //overallCount = leftCount + rightCount + + if(node == null) return 0; + return countNodes(node.left) + countNodes(node.right) + 1; + // return node == null ? 0 : countNodes(node.left) + countNodes(node.right) + 1; + // int leftCount = countNodes(node.left); + // int rightCount = countNodes(node.right); + // int overallCount = leftCount + rightCount + 1; + + // return overallCount; + } } diff --git a/src/TreeNode.java b/src/TreeNode.java index 89a9022..54bec9b 100644 --- a/src/TreeNode.java +++ b/src/TreeNode.java @@ -1,10 +1,11 @@ -public class TreeNode { - public int value; - public TreeNode left; - public TreeNode right; +public class TreeNode { + public T value; + public TreeNode left; + public TreeNode right; + - 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 a07970e3fd294f18e6fbfe0530034131ec6e7c15 Mon Sep 17 00:00:00 2001 From: Connor Date: Thu, 19 Feb 2026 14:29:41 -0800 Subject: [PATCH 3/4] Today's Livecode --- src/Traversal.java | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/Traversal.java b/src/Traversal.java index 4fe67cb..ee01d71 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,3 +1,6 @@ +import java.util.HashMap; +import java.util.Map; + public class Traversal { public static void main(String[] args) { @@ -15,7 +18,7 @@ public static void main(String[] args) { TreeNode stringRoot = new TreeNode("Root", null, null); - stringRoot.left = new TreeNode("car", null, null); + stringRoot.left = new TreeNode("dog", null, null); stringRoot.left.left = new TreeNode("dog", null, null); stringRoot.left.right = new TreeNode("cat", null, null); @@ -35,7 +38,11 @@ public static void main(String[] args) { // printGreater(root, 4); - System.out.println(countNodes(root)); + // System.out.println(countNodes(root)); + + + + System.out.println(toMap(stringRoot)); } // print a tree rooted at the given node in pre-order @@ -114,4 +121,22 @@ public static int countNodes(TreeNode node){ } + 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; + + //fill up those counts + counts.put(node.value , counts.getOrDefault(node.value, 0) + 1 ); + toMap(node.left, counts); + toMap(node.right, counts); + + + } + } From 15e4939ba43b772494a31f786130e840f9bc69cb Mon Sep 17 00:00:00 2001 From: Connor Date: Tue, 24 Feb 2026 14:49:00 -0800 Subject: [PATCH 4/4] Live Code Day 4 --- src/Traversal.java | 64 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/src/Traversal.java b/src/Traversal.java index ee01d71..9c2dfeb 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,5 +1,8 @@ import java.util.HashMap; +import java.util.LinkedList; import java.util.Map; +import java.util.Queue; +import java.util.Stack; public class Traversal { @@ -28,6 +31,17 @@ public static void main(String[] args) { stringRoot.right.right = new TreeNode("goodbye", null, null); stringRoot.right.right.right = new TreeNode("bonito flakes", null, null); + TreeNode megaRoot = new TreeNode(1, null, null); + + TreeNode current = megaRoot; + + for(int i = 2; i <= 50000; i++){ + current.right = new TreeNode(i, null, null); + current = current.right; + + } + + // System.out.println("preorder recursive"); // preOrder(root); // postOrder(root); // inOrder(root); @@ -42,9 +56,37 @@ public static void main(String[] args) { - System.out.println(toMap(stringRoot)); + // System.out.println(toMap(stringRoot)); + + // preOrder(megaRoot); + // System.out.println("preorder iterator"); + // preOrderIter(root); + // preOrderIter(megaRoot); + levelOrder(root); + } + +// preorder travel using loops/iterations + public static void preOrderIter(TreeNode node){ + Stack> stack = new Stack<>(); + if(node == null) return; + stack.push(node); + + + while(!stack.isEmpty()){ + TreeNode current = stack.pop(); + + if(current == null ) continue; + + System.out.println(current.value); + + stack.push(current.right); + stack.push(current.left); + + } + } + // print a tree rooted at the given node in pre-order public static void preOrder(TreeNode node){ @@ -60,6 +102,26 @@ public static void preOrder(TreeNode node){ preOrder(node.right); } + public static void levelOrder(TreeNode node){ + Queue> queue = new LinkedList<>(); + if(node == null) return; + queue.add(node); + + + while(!queue.isEmpty()){ + TreeNode current = queue.poll(); + + if(current == null ) continue; + + System.out.println(current.value); + + queue.add(current.left); + queue.add(current.right); + + + } + + } public static void postOrder(TreeNode node){