Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

JAVA DFS we were given a code for a search tree, the code had the search tree and nodes and everything, we just need to

JAVA DFS

we were given a code for a search tree, the code had the search tree and nodes and everything, we just need to implment DFS method in java

please implement DFS method in the binaryTree class, The goal of you is to find node with value 288 and print the path from root to it

Task 1: Please use the DFS to find the path. You should implement the method in binaryTree.java class, and test the method in test.java class

My main problem is I don't know how to refere to the nodes because they are being created without names, and the tutorial I found uses names to refere to the nodes https://tutorialedge.net/artificial-intelligence/breadth-first-search-java/

I know the tutorial is for bfs but I just used it as refrance and I still don't understand the problem, will appricate commented work but not needed as I am in a time crunch

please help, Thank you

the tutorial above uses station names to address and compare the nodes, I don't understand the provided code

the provided code:

----------------------------------------------------

package cs351_uninformed_search; public class binaryTree { protected btNode root; /* Constructor */ public binaryTree() { root = null; } /* Function to check if tree is empty */ public boolean isEmpty() { return root == null; } /* Functions to insert data */ public void insert(int data) { root = insert(root, data); } /* Function to insert data recursively */ private btNode insert(btNode node, int data) { if (node == null) node = new btNode(data); else { if (data <= node.getData()) node.left = insert(node.left, data); else node.right = insert(node.right, data); } return node; } ///////////////////////////////////////////CODE BY STUDENTS }

---------------------------------------------------------------------------------------------------------

package cs351_uninformed_search; public class btNode { btNode left, right; int data; /* Constructor */ public btNode() { left = null; right = null; data = 0; } /* Constructor */ public btNode(int n) { left = null; right = null; data = n; } /* Function to set left node */ public void setLeft(btNode n) { left = n; } /* Function to set right node */ public void setRight(btNode n) { right = n; } /* Function to get left node */ public btNode getLeft() { return left; } /* Function to get right node */ public btNode getRight() { return right; } /* Function to set data to node */ public void setData(int d) { data = d; } /* Function to get data from node */ public int getData() { return data; } }

-------------------------------------------------------------------

package cs351_uninformed_search; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class BTreePrinter { public static  void printNodeInternal(List nodes, int level, int maxLevel) { if (nodes.isEmpty() || BTreePrinter.isAllElementsNull(nodes)) return; int floor = maxLevel - level; int endgeLines = (int) Math.pow(2, (Math.max(floor - 1, 0))); int firstSpaces = (int) Math.pow(2, (floor)) - 1; int betweenSpaces = (int) Math.pow(2, (floor + 1)) - 1; BTreePrinter.printWhitespaces(firstSpaces); List newNodes = new ArrayList(); for (btNode node : nodes) { if (node != null) { System.out.print(node.data); newNodes.add(node.left); newNodes.add(node.right); } else { newNodes.add(null); newNodes.add(null); System.out.print(" "); } BTreePrinter.printWhitespaces(betweenSpaces); } System.out.println(""); for (int i = 1; i <= endgeLines; i++) { for (int j = 0; j < nodes.size(); j++) { BTreePrinter.printWhitespaces(firstSpaces - i); if (nodes.get(j) == null) { BTreePrinter.printWhitespaces(endgeLines + endgeLines + i + 1); continue; } if (nodes.get(j).left != null) System.out.print("/"); else BTreePrinter.printWhitespaces(1); BTreePrinter.printWhitespaces(i + i - 1); if (nodes.get(j).right != null) System.out.print("\\"); else BTreePrinter.printWhitespaces(1); BTreePrinter.printWhitespaces(endgeLines + endgeLines - i); } System.out.println(""); } printNodeInternal(newNodes, level + 1, maxLevel); } private static void printWhitespaces(int count) { for (int i = 0; i < count; i++) System.out.print(" "); } private static > int maxLevel(btNode node) { if (node == null) return 0; return Math.max(BTreePrinter.maxLevel(node.left), BTreePrinter.maxLevel(node.right)) + 1; } private static  boolean isAllElementsNull(List list) { for (Object object : list) { if (object != null) return false; } return true; } }

----------------------------------------------

package cs351_uninformed_search; import java.util.Random; public class test { public static void main(String[] args) { /* Creating object of BST */ binaryTree bst = new binaryTree(); System.out.println("Binary Search Tree Test "); int flag=0; Random r = new Random(100); while(flag<20) { bst.insert( r.nextInt(500) ); flag++; } BTreePrinter.printNode(bst.root); System.out.println("Hello from CS351: This is the first programming assignment!"); System.out.println("You will practice the uninformed search algorithm"); System.out.println("The goal of you is to find node with value 288 and" + "print the path from root to it"); System.out.println("Warm up your JAVA ^^"); System.out.println("Task 1: Please use the BFS to find the path." + "You should implement the method in binaryTree.java class," + "and test the method in test.java class"); // test your first method here System.out.println("Task 2: Please use the DFS to find the path." + "You should implement the method in binaryTree.java class," + "and test the method in test.java class"); //// test your second method here } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Statistical And Scientific Database Management International Working Conference Ssdbm Rome Italy June 21 23 1988 Proceedings Lncs 339

Authors: Maurizio Rafanelli ,John C. Klensin ,Per Svensson

1st Edition

354050575X, 978-3540505754

More Books

Students also viewed these Databases questions