Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Why cant I initialize the binary tree in main? public class TreeNode { //root node Node root; //method to add nodes public void addNode(int key,
Why cant I initialize the binary tree in main?
public class TreeNode { //root node Node root; //method to add nodes public void addNode(int key, String name) { //initialize new node Node newNode = new Node(key, name); /* * checks to see if its indeed the root element * and if it throw newNode to it */ if(root == null) { root = newNode; } else { /* * else if not the root element * we will create. another node and set root * as the node because we will start with root as we * traverse through our tree */ Node focusNode = root; //Future parent for new node Node parent; while(true) { // is the root because thats where we will start parent = focusNode; //checks to see if the new node should on the left side if(key < focusNode.key) { // if the left child has no children focusNode = focusNode.leftChild; //then place the new node on the left of it if (focusNode == null) { parent.leftChild = newNode; return; } } // If we get here we know our node needs to go on the right else { focusNode = focusNode.rightChild; // if the right child has no children // we create. a new node if(focusNode == null) { //new node placed on the right side parent.rightChild = newNode; return; } } } } } //All nodes are visited in ascending order // Recursin is used to go to one node // and then go to its child nodes and so forth public void inOrderTraverseTree (Node focusNode) { //check to see if there is something in there if(focusNode != null) { //traverse the left node inOrderTraverseTree(focusNode.leftChild); // then we will visit the currently focused on // node because we know that will be the next value // of the lowest value System.out.println(focusNode); //then we traverse the right child inOrderTraverseTree(focusNode.rightChild); } } public static void main(String[] args) { // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv BinaryTree theTree = new BinaryTree(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //adding nodes theTree.addNode(50, "boss"); theTree.addNode(46, "Vice Press"); theTree.addNode(44, "Officer manager"); theTree.addNode(32, "Secretary"); theTree.addNode(34, "Sales Manager"); theTree.addNode(27, "Salesman 1"); theTree.inOrderTraverseTree(theTree.root); } } //How we will setup our different keys class Node{ int key; String name; //reference to each child in the BINARY tree Node leftChild; Node rightChild; //construct Node(int key, String name) { this.key = key; this.name = name; } //not needed but helpful to print out on screen public String toString() { return name + "has a key " + key; } }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started