From 5c6042d4dae58cfc96560f6b77c3beabd25a04c1 Mon Sep 17 00:00:00 2001 From: Jessica H Date: Wed, 21 May 2025 11:41:11 -0700 Subject: [PATCH 1/7] added nodes to the tree --- src/Traversal.java | 17 +++++++++++++++++ src/TreeNode.java | 8 ++++++++ 2 files changed, 25 insertions(+) diff --git a/src/Traversal.java b/src/Traversal.java index 8da0f79..edba4f2 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,5 +1,22 @@ + + public class Traversal { public static void main(String[] args) { + TreeNode root = new TreeNode(10); + root.left = new TreeNode(9); + root.right = new TreeNode(15); + root.left.left = new TreeNode(5); + root.left.right = new TreeNode(2); + root.right = new TreeNode(15); + root.left = new TreeNode(-3); + root.right.right = new TreeNode(5); + root.right.right.right = new TreeNode(22); + } + public static void preOrder(TreeNode current){ + // null return ,print our data, search left, search right + if(current == null){ + return; + } } } diff --git a/src/TreeNode.java b/src/TreeNode.java index acd9639..4c4bd51 100644 --- a/src/TreeNode.java +++ b/src/TreeNode.java @@ -1,4 +1,12 @@ + + public class TreeNode { + public int data; + public TreeNode left; + public TreeNode right; + public TreeNode (int data){ + this.data = data; + } } \ No newline at end of file From 1cfe9882524865bd8a8ee3691f446faf0634f8b6 Mon Sep 17 00:00:00 2001 From: Jessica H Date: Wed, 21 May 2025 21:13:40 -0700 Subject: [PATCH 2/7] finished live code --- src/Traversal.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Traversal.java b/src/Traversal.java index edba4f2..04122a4 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -11,12 +11,17 @@ public static void main(String[] args) { root.left = new TreeNode(-3); root.right.right = new TreeNode(5); root.right.right.right = new TreeNode(22); + preOrder(root); } public static void preOrder(TreeNode current){ // null return ,print our data, search left, search right - if(current == null){ - return; - } + if(current == null) return; + + System.out.println(current.data); + // search the left side + preOrder(current.left); + preOrder(current.right ); + } } From 1819a60f5cb0853abfddbd8ea80b7ecd4c5be8e2 Mon Sep 17 00:00:00 2001 From: Jessica H Date: Wed, 28 May 2025 11:27:08 -0700 Subject: [PATCH 3/7] added a sum method that sums the whole tree --- src/Traversal.java | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/Traversal.java b/src/Traversal.java index 04122a4..4dc97fb 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,5 +1,7 @@ + + public class Traversal { public static void main(String[] args) { TreeNode root = new TreeNode(10); @@ -7,11 +9,13 @@ public static void main(String[] args) { root.right = new TreeNode(15); root.left.left = new TreeNode(5); root.left.right = new TreeNode(2); - root.right = new TreeNode(15); + root.right.left = new TreeNode(15); root.left = new TreeNode(-3); root.right.right = new TreeNode(5); root.right.right.right = new TreeNode(22); - preOrder(root); + //preOrder(root); + int results = sum(root); + System.out.println(results); } public static void preOrder(TreeNode current){ // null return ,print our data, search left, search right @@ -24,4 +28,17 @@ public static void preOrder(TreeNode current){ preOrder(current.right ); } + public static int sum(TreeNode node){ + // if null -> 0 + if (node == null) return 0; + // else my calue + sum of left subtree + sum right subtree + // start total at root + int total = node.data; + + // add sum of left subtree to total + total+= sum(node.left); + total+=sum(node.right); + return total; + + } } From 89494312bec8a4fa985ab856e55a7e91b2e20eb0 Mon Sep 17 00:00:00 2001 From: Jessica H Date: Wed, 28 May 2025 12:00:44 -0700 Subject: [PATCH 4/7] added a sum method that sums the odd numbers --- src/Traversal.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Traversal.java b/src/Traversal.java index 4dc97fb..a45abbf 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -16,6 +16,7 @@ public static void main(String[] args) { //preOrder(root); int results = sum(root); System.out.println(results); + System.err.println(oddSum(root)); } public static void preOrder(TreeNode current){ // null return ,print our data, search left, search right @@ -41,4 +42,15 @@ public static int sum(TreeNode node){ return total; } + public static int oddSum(TreeNode node) { + if (node == null) return 0; + int total =0; + + if (node.data % 2 != 0) { + total+= node.data; + } + total += oddSum(node.left); + total += oddSum(node.right); + return total; + } } From 654a3dacfb7a569a86b24575ee4b662262789d91 Mon Sep 17 00:00:00 2001 From: Jessica H Date: Thu, 28 May 2026 13:46:14 -0700 Subject: [PATCH 5/7] inclass work --- src/Traversal.java | 46 +++++++++++++++++++++------------------------- src/TreeNode.java | 11 ++++++++++- 2 files changed, 31 insertions(+), 26 deletions(-) diff --git a/src/Traversal.java b/src/Traversal.java index a45abbf..188ec60 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -6,13 +6,14 @@ public class Traversal { public static void main(String[] args) { TreeNode root = new TreeNode(10); root.left = new TreeNode(9); - root.right = new TreeNode(15); root.left.left = new TreeNode(5); root.left.right = new TreeNode(2); - root.right.left = new TreeNode(15); - root.left = new TreeNode(-3); + + root.right = new TreeNode(15); + root.right.left = new TreeNode(-3); root.right.right = new TreeNode(5); root.right.right.right = new TreeNode(22); + //preOrder(root); int results = sum(root); System.out.println(results); @@ -29,28 +30,23 @@ public static void preOrder(TreeNode current){ preOrder(current.right ); } - public static int sum(TreeNode node){ - // if null -> 0 - if (node == null) return 0; - // else my calue + sum of left subtree + sum right subtree - // start total at root - int total = node.data; - - // add sum of left subtree to total - total+= sum(node.left); - total+=sum(node.right); - return total; + public static void postOrder(TreeNode current){ + // null return , search left, search right, print our data + + if(current == null) return; + postOrder(current.left); + postOrder(current.right ); + System.out.println(current.data); + } +public static void inOrder(TreeNode current){ + // null return , search left, search right, print our data + + if(current == null) return; + inOrder(current.left); + System.out.println(current.data); + inOrder(current.right ); + } - public static int oddSum(TreeNode node) { - if (node == null) return 0; - int total =0; - - if (node.data % 2 != 0) { - total+= node.data; - } - total += oddSum(node.left); - total += oddSum(node.right); - return total; - } + } diff --git a/src/TreeNode.java b/src/TreeNode.java index 4c4bd51..db72edc 100644 --- a/src/TreeNode.java +++ b/src/TreeNode.java @@ -8,5 +8,14 @@ public class TreeNode { public TreeNode (int data){ this.data = data; } - + public TreeNode (int data, TreeNode left){ + this.data = data; + this.left = left; + + } + public TreeNode (int data, TreeNode left, TreeNode right){ + this.data = data; + this.left = left; + this.right = right; + } } \ No newline at end of file From a2a6db6ed91ec05a938c0e6578f91332e71242e4 Mon Sep 17 00:00:00 2001 From: Jessica H Date: Tue, 2 Jun 2026 12:20:04 -0700 Subject: [PATCH 6/7] inclass work done --- src/Traversal.java | 91 +++++++++++++++++++++++++++++++--------------- src/TreeNode.java | 14 +++---- 2 files changed, 68 insertions(+), 37 deletions(-) diff --git a/src/Traversal.java b/src/Traversal.java index 188ec60..cebd408 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -4,49 +4,80 @@ public class Traversal { public static void main(String[] args) { - TreeNode root = new TreeNode(10); - root.left = new TreeNode(9); - root.left.left = new TreeNode(5); - root.left.right = new TreeNode(2); - - root.right = new TreeNode(15); - root.right.left = new TreeNode(-3); - root.right.right = new TreeNode(5); - root.right.right.right = new TreeNode(22); - - //preOrder(root); + + TreeNode root = new TreeNode<>(10); + root.left = new TreeNode<>(9); + root.left.left = new TreeNode<>(5); + root.left.right = new TreeNode<>(2); + + root.right = new TreeNode<>(15); + root.right.left = new TreeNode<>(-3); + root.right.right = new TreeNode<>(5); + root.right.right.right = new TreeNode<>(22); + + TreeNode stringRoot = new TreeNode<>("Hello"); + stringRoot.left = new TreeNode<>("hi"); + stringRoot.left.left = new TreeNode<>("what"); + stringRoot.left.right = new TreeNode<>("jessica"); + + stringRoot.right = new TreeNode<>("yes"); + stringRoot.right.left = new TreeNode<>("blue"); + stringRoot.right.right = new TreeNode<>("yellow"); + stringRoot.right.right.right = new TreeNode<>("pink"); + + //printGreaterThan(root, 4); + preOrder(stringRoot); + int results = sum(root); System.out.println(results); System.err.println(oddSum(root)); } - public static void preOrder(TreeNode current){ - // null return ,print our data, search left, search right - if(current == null) return; + public static void printGreaterThan(TreeNode current, int threshold) { + if (current == null) return; + + if (current.value > threshold) { + System.out.println(current.value); + } + + printGreaterThan(current.left, threshold); + printGreaterThan(current.right, threshold); + } + public static int countNodes(TreeNode current){ + if (current == null) return 0; + int leftCount = countNodes(current.left); + int rightCount = countNodes(current.right); + int totalCount = 1+ leftCount + rightCount; + + return totalCount; + + + + + } + + public static void preOrder(TreeNode current) { + if (current == null) return; System.out.println(current.data); - // search the left side preOrder(current.left); - preOrder(current.right ); - + preOrder(current.right); } - public static void postOrder(TreeNode current){ - // null return , search left, search right, print our data + public static void postOrder(TreeNode current) { + if (current == null) return; - if(current == null) return; postOrder(current.left); - postOrder(current.right ); - System.out.println(current.data); - } -public static void inOrder(TreeNode current){ - // null return , search left, search right, print our data + postOrder(current.right); + E myValue = current.value; + System.out.println(myValue); + } + + public static void inOrder(TreeNode current) { + if (current == null) return; - if(current == null) return; inOrder(current.left); System.out.println(current.data); - inOrder(current.right ); - + inOrder(current.right); } - -} +} \ No newline at end of file diff --git a/src/TreeNode.java b/src/TreeNode.java index db72edc..9f41e0f 100644 --- a/src/TreeNode.java +++ b/src/TreeNode.java @@ -1,19 +1,19 @@ -public class TreeNode { - public int data; - public TreeNode left; - public TreeNode right; +public class TreeNode { + public T data; + public TreeNode left; + public TreeNode right; - public TreeNode (int data){ + public TreeNode (T data){ this.data = data; } - public TreeNode (int data, TreeNode left){ + public TreeNode (T data, TreeNode left){ this.data = data; this.left = left; } - public TreeNode (int data, TreeNode left, TreeNode right){ + public TreeNode (T data, TreeNode left, TreeNode right){ this.data = data; this.left = left; this.right = right; From 83218c667ba866a3680e1d4f58e8c9233a0f1902 Mon Sep 17 00:00:00 2001 From: Jessica H Date: Tue, 9 Jun 2026 11:46:46 -0700 Subject: [PATCH 7/7] finished live code for today --- src/Traversal.java | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/src/Traversal.java b/src/Traversal.java index cebd408..2152708 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,6 +1,5 @@ - - - +import java.util.LinkedList; +import java.util.Stack; public class Traversal { public static void main(String[] args) { @@ -25,6 +24,39 @@ public static void main(String[] args) { stringRoot.right.right = new TreeNode<>("yellow"); stringRoot.right.right.right = new TreeNode<>("pink"); + TreeNode megaRoot = new TreeNode (1); + TreeNode current = megaRoot; + + for(int i=2; i<100_001; i++){ + current.right = new TreeNode(i); + current= current.right; + } + preOrder(megaRoot); + public static void preOrderIterative(TreeNode root){ + + Stack> stack = new Stack<>(); + stack.push(root); + + while (!stack.isEmpty()){ + TreeNode current = stack.pop(); + if(current == null) continue; + //do something + System.out.println(current.value); + stack.push(current.right); + stack.push(current.left); + } + } + + public static void levelOrder(TreeNode root){ + Queue> queue = new LinkedList<>(); + queue.offer(root); + + while(!queue.isEmpty()){ + TreeNode current = queue.remove(); + if(current == null) continue; + System.out.println(current.value); + } + } //printGreaterThan(root, 4); preOrder(stringRoot);