Chat with us, powered by LiveChat ? Instructions Read through all ?the provided source code to make sure that you understand the c - Writeedu

? Instructions Read through all ?the provided source code to make sure that you understand the c

 

Instructions

  1. Read through all  the provided source code to make sure that you understand the context. A  class named BinarySearchTree with an add method plus various utility  methods is provided for you. You must not change any  provided method with a body that is already complete. Note that linked  nodes are used to implement the BinarySearchTree class. Note also that  the data type allowed in the BinarySearchTree is constrained to be a  class that implements the Comparable interface and thus has a natural  total order defined.
  2. The min method of the BinarySearchTree class currently has no body. You must provide a correct body for the min method.
  3. A  sample main method is provided to illustrate building a simple binary  search tree and then using the min method to search for particular  values.

Problem Description: Finding the Minimum Value in a Binary Search Tree

Complete the body of the min method so that it returns the minimum value in the binary search tree.

The  following table lists an example call to min and the expected return  value when called in the context of the binary search tree pictured  below.

 

public class BSTMin {

  /** Provides an example. */

  public static void main(String[] args) {

    BinarySearchTree<Integer> iBst = new BinarySearchTree<>();

    iBst.add(10);

    iBst.add(12);

    iBst.add(8);

    iBst.add(2);

    iBst.add(6);

    iBst.add(4);

    Integer imin = iBst.min();

    // The following statement should print 2.

    System.out.println(imin);

    BinarySearchTree<String> sBst = new BinarySearchTree<>();

    sBst.add("W");

    sBst.add("A");

    sBst.add("R");

    sBst.add("E");

    sBst.add("A");

    sBst.add("G");

    sBst.add("L");

    sBst.add("E");

    String smin = sBst.min();

    // The following statement should print A.

    System.out.println(smin);

  }

  /** Defines a binary search tree. */

  static class BinarySearchTree<T extends Comparable<T>> {

    // the root of this binary search tree

    private Node root;

    // the number of nodes in this binary search tree

    private int size;

    /** Defines the node structure for this binary search tree. */

    private class Node {

      T element;

      Node left;

      Node right;

      /** Constructs a node containing the given element. */

      public Node(T elem) {

        element = elem;

        left = null;

        right = null;

      }

    }

    /*   >>>>>>>>>>>>>>>>>>  YOUR WORK STARTS HERE  <<<<<<<<<<<<<<<< */

    ///////////////////////////////////////////////////////////////////////////////

    //    I M P L E M E N T  T H E  M I N  M E T H O D  B E L O W     //

    ///////////////////////////////////////////////////////////////////////////////

    /**

     * Returns the minimum value in the binary search tree.

     */

    public T min() {

    }

    /*   >>>>>>>>>>>>>>>>>>  YOUR WORK ENDS HERE  <<<<<<<<<<<<<<<< */

    ////////////////////////////////////////////////////////////////////

    // D O  N O T  M O D I F Y  B E L O W  T H I S  P O I N T  //

    ////////////////////////////////////////////////////////////////////

    ////////////////////

    // M E T R I C S //

    ////////////////////

    /**

     * Returns the number of elements in this bst.

     */

    public int size() {

      return size;

    }

    /**

     * Returns true if this bst is empty, false otherwise.

     */

    public boolean isEmpty() {

      return size == 0;

    }

    /**

     * Returns the height of this bst.

     */

    public int height() {

      return height(root);

    }

    /**

     * Returns the height of node n in this bst.

     */

    private int height(Node n) {

      if (n == null) {

        return 0;

      }

      int leftHeight = height(n.left);

      int rightHeight = height(n.right);

      return 1 + Math.max(leftHeight, rightHeight);

    }

    ////////////////////////////////////

    // A D D I N G  E L E M E N T S //

    ////////////////////////////////////

    /**

     * Ensures this bst contains the specified element. Uses an iterative implementation.

     */

    public void add(T element) {

      // special case if empty

      if (root == null) {

        root = new Node(element);

        size++;

        return;

      }

      // find where this element should be in the tree

      Node n = root;

      Node parent = null;

      int cmp = 0;

      while (n != null) {

        parent = n;

        cmp = element.compareTo(parent.element);

        if (cmp == 0) {

          // don't add a duplicate

          return;

        } else if (cmp < 0) {

          n = n.left;

        } else {

          n = n.right;

        }

      }

      // add element to the appropriate empty subtree of parent

      if (cmp < 0) {

        parent.left = new Node(element);

      } else {

        parent.right = new Node(element);

      }

      size++;

    }

  }

}

    Our website has a team of professional writers who can help you write any of your homework. They will write your papers from scratch. We also have a team of editors just to make sure all papers are of HIGH QUALITY & PLAGIARISM FREE. To make an Order you only need to click Ask A Question and we will direct you to our Order Page at WriteEdu. Then fill Our Order Form with all your assignment instructions. Select your deadline and pay for your paper. You will get it few hours before your set deadline.

    Fill in all the assignment paper details that are required in the order form with the standard information being the page count, deadline, academic level and type of paper. It is advisable to have this information at hand so that you can quickly fill in the necessary information needed in the form for the essay writer to be immediately assigned to your writing project. Make payment for the custom essay order to enable us to assign a suitable writer to your order. Payments are made through Paypal on a secured billing page. Finally, sit back and relax.

    Do you need an answer to this or any other questions?

    Do you need help with this question?

    Get assignment help from WriteEdu.com Paper Writing Website and forget about your problems.

    WriteEdu provides custom & cheap essay writing 100% original, plagiarism free essays, assignments & dissertations.

    With an exceptional team of professional academic experts in a wide range of subjects, we can guarantee you an unrivaled quality of custom-written papers.

    Chat with us today! We are always waiting to answer all your questions.

    Click here to Place your Order Now