Question

Write a java application to read in an attached CSV file and store the data items within a Binary...

Write a java application to read in an attached CSV file and store the data items within a Binary Search Tree.

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Code:

import java.util.*;
import java.io.*;

//File name CSVToBST.java
public class CSVToBST
{

   public static void main(String[] args) {
       // Creates an Object to BST Class
       BST b = new BST();

       //You can take file name from the user using
       /**
           Scanner in = new Scanner(System.in);
           File file = nextLine();
           */
      File file = new File("example.csv");
      //Creates a scanenr for file
      Scanner input;

      try{
          //assign the Scanner with file.
          input = new Scanner(file);
          //Until the end of file do the following.
          while(input.hasNext())
          {
              //Read a line
              String line= input.next();
              //Split the line at , which returns a Array of strings
              String[] values = line.split(",");
              //For all strings insert into the BST.
              for (String i : values) {
                  //While inserting convert the given string to integer.
                  b.insert(Integer.parseInt(i));
              }
          }
          //Close the input stream.
          input.close();
      }
      //If exception raises handle it.
      catch(FileNotFoundException e)
      {
          System.out.println("No such file found!!");
      }
      //To display the constructed BST.
      System.out.println("Obtained BST is");
      b.display();
   }
}

//To hold the BST data
class Node
{
   //properties data to hold data
   //left , right to holds addresses of left and right nodes.
   int data;
   Node left,right;

   //initialize the node with the given data.
   public Node(int data)
   {
       this.data=data;
       left=right=null;
   }
}


//Class to construct BST
class BST
{

   //A root to hold the root address
   private Node root;

   //Constructer to initialize root.
   public BST()
   {
       root = null;
   }

   //method insert to insert the passed argumetn x.
   public void insert(int x)
   {
       //use the utility function to insert the value.
       root = insert(this.root,x);
   }

   //a private utility function to insert the value.
   private Node insert(Node cur,int x)
   {
       //if the current node is null create new node and return.
       if(cur == null)
       {
           return new Node(x);
       }
       //if the value in current node is grater then the x insert in the left subtree.
       if(cur.data > x)
       {
           cur.left = insert(cur.left, x);
       }
       //in other case insert in the right subtree.
       else
       {
           cur.right = insert(cur.right, x);
       }
       //finally return the current (cur).
       return cur;
   }

   //function to display the tree inorder
   public void display()
   {
       if(this.root == null)
       {
           System.out.println("No tree found");
       }
       System.out.print("Inorder:");
       inorder(this.root);
       System.out.println();
       System.out.print("Preorder:");
       preorder(this.root);
   }

   //A private utility function to display Tree inorder.
   private void inorder(Node cur)
   {
       if(cur != null)
       {
           inorder(cur.left);
           System.out.print (cur.data+" ");
           inorder(cur.right);
       }
   }

   //A private utility function to display Tree preorder.
   private void preorder(Node cur)
   {
       if(cur != null)
       {
           System.out.print (cur.data+" ");
           preorder(cur.left);
           preorder(cur.right);
       }
   }
}

Input:

example.csv:

1,5,3,6,7,2 9,10,4,e,

Output:

Obtained BST is Inorder:0 1 2 3 4 5 6 7 8 9 18 Preorder:1 0 5 3 2 467 9 8 10

Hope your problem solved.

Feel Free to comment doubts in the comment section.

Add a comment
Know the answer?
Add Answer to:
Write a java application to read in an attached CSV file and store the data items within a Binary...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • This assignment involves 2 Java programs 1) Write a Java program to read a CSV (Comma...

    This assignment involves 2 Java programs 1) Write a Java program to read a CSV (Comma separated values) text file. The text file will contain comma separated values in each line. Each line contains data in this format: String(20), String(5),String(10), double. There will be multiple lines with each line containing the same number of values. Ask the user to enter the path for the CSV file for reading the file. After reading the data from the file output the data...

  • Java code to read from .csv file i currently have a .csv file that looks like...

    Java code to read from .csv file i currently have a .csv file that looks like this: 39.743222, -105.006241, Hospital 39.743981, -105.020017, Home 39.739377, -104.984774, Firehouse 39.627779, -104.839291, McDonald's 39.731919, -104.961814, Chipotle I need to write code to extract the doubles from each line to use for my Linked List. this is what i have so far: Scanner in = new Scanner(new FileInputStream(DATA_FILE));

  • JAVA Write an application to test the HuffmanTree class. Your application will need to read a...

    JAVA Write an application to test the HuffmanTree class. Your application will need to read a text file and build a frequency table for the characters occurring in that file. Once that table is built create a Huffman code tree and then a string consisting of 0 and 1 characters that represents the code string for that file. Read that string back in and re-create the contents of the original file. Prompt the user for file name. Read the file,...

  • Write a java program for creating a binary search tree from an empty tree where you...

    Write a java program for creating a binary search tree from an empty tree where you must consider 10 data items to form the tree.

  • This is binary search tree problem. The program reads the text file, and creates a binary...

    This is binary search tree problem. The program reads the text file, and creates a binary search tree based on the words in the file. I can create the tree but I also have to store 'the order of insertion' in each node.   For example, if text includes "the" 3 times and it is the 1st, 5th, and 9th word in the file, in binary search tree, one node should have string value "the" and array list{1, 5, 9}. How...

  • The name of the C++ file must be search.cpp Write a program that will read data...

    The name of the C++ file must be search.cpp Write a program that will read data from a file. The program will allow the user to specify the filename. Use a loop that will check if the file is opened correctly, otherwise display an error message and allow the user to re-enter a filename until successful. Read the values from the file and store into an integer array. The program should then prompt the user for an integer which will...

  • 1. write a java program using trees(binary search treee) to read integers from input file( .txt)...

    1. write a java program using trees(binary search treee) to read integers from input file( .txt) and add +1 to each number that you read from the input file. then copy result to another (.txt) file. example: if inpu File has numbers like 4787 79434 4326576 65997 4354 the output file must have result of 4788 79435 4326577 65998 4355 Note: there is no commas in between the numbers. dont give images or theory please.

  • Write a Java application that implements the recursive Binary Search alogrithm below: Write a Java application...

    Write a Java application that implements the recursive Binary Search alogrithm below: Write a Java application that implements the recursive Binary Search alogrithm below:/** * Performs the standard binary search using two comparisons * per level. This is a driver that calls the recursive method * @return index where item is found or NOT FOUND if not found */public static <AnyType extends Comparable<? super AnyType>> int binarySearch(AnyType [] a, AnyType x) {return binarySearch(a, x, 0, a.length -1);}/** * Hidden recursive...

  • can someone explain simply how to read a binary file and how to write to a...

    can someone explain simply how to read a binary file and how to write to a binary file in java please

  • Write code to read student data from a csv file and add (prepend) that into a...

    Write code to read student data from a csv file and add (prepend) that into a linked list. Assume the code is written in only one file - main.c. You are REQUIRED to write the struct definition for the linked list node. . The input file name is taken from command line argument. . You can write everything except the struct definition in the main function, or can create multiple functions up to you. Following is the sample file data....

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT