Results 1 to 2 of 2
- 04-03-2012, 07:23 PM #1
Member
- Join Date
- Feb 2010
- Posts
- 26
- Rep Power
- 0
Implementing a binary search tree?
Hello everyone,
I am trying to implement this binary search tree using recursion.
On the first iteration of the loop within the driver class, the first record gets added as root just as I expected, but now on the second iteration within the driver class the root is overwritten with the second record before it even steps in to the insert method. Why is this happening?
Here is my code:
Main Driver Class:
Java Code:import java.io.BufferedReader; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; public class GolfCourseDriver { public static void main(String[] args) throws IOException { FileInputStream fstream = new FileInputStream("GolfCourseData.txt"); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); Tree searchTree = new Tree(); GolfCourse gcRec = new GolfCourse(); String strLine; int count = 1; String totalRecs = br.readLine(); // get total num of records // build each node from each golfCourseObject while((strLine = br.readLine()) != null){ switch(count){ case 1: gcRec.setCourseName(strLine); break; case 2: gcRec.setLocation(strLine); break; case 3: gcRec.setGreensFee(Double.valueOf(strLine)); break; case 4: gcRec.setPar(Integer.valueOf(strLine)); break; case 5: gcRec.setDesigner(strLine); break; case 6: gcRec.setYearBuilt(Integer.valueOf(strLine)); break; case 7: gcRec.setYards(Integer.valueOf(strLine)); break; default: System.out.println("Error! invalid item found."); break; } // reset count if(count == 7){ searchTree.insert(gcRec); count = 1; } else{ count++; } } in.close(); } }
Java Code:public class Tree { private TreeNode root; public Tree() { root = null; } public void insert(GolfCourse object) { root = insert(object, root); } private TreeNode insert(GolfCourse newObject, TreeNode node) { if (node == null) { return new TreeNode(newObject); } if (newObject.greensFee == node.object.greensFee) { // replace the value in this node with a new value node.object = newObject; // alternative code creates new node, leaves old node unchanged: //return new BinaryNode<T>(value, node.left, node.right); } else { if (newObject.greensFee < node.object.greensFee) { // add to left subtree node.lPtr = insert(newObject, node.lPtr); } else { // add to right subtree node.rPtr = insert(newObject, node.rPtr); } } return node; } }
Java Code:public class TreeNode { GolfCourse object; TreeNode lPtr; TreeNode rPtr; public TreeNode() { } public TreeNode(GolfCourse data){ object = data; } }
Java Code:22 Abacoa Golf Club Jupiter 45 72 Joe Lee 1999 7200 Eastpointe Country Club PB Gardens 50 72 George and Tom Fazio 1974 6890
Thanks
- 04-03-2012, 10:39 PM #2
Moderator
- Join Date
- Jul 2010
- Location
- California
- Posts
- 1,638
- Rep Power
- 13
Re: Implementing a binary search tree?
Cross posted and answered at Implementing a binary search tree using recursion?
Similar Threads
-
Implementing quick sort and binary search
By syle_q in forum New To JavaReplies: 1Last Post: 04-07-2011, 09:46 PM -
Implementing a binary tree
By ryuzog in forum New To JavaReplies: 1Last Post: 11-07-2010, 03:01 AM -
Data Structures(Binary Search Tree to AVL Tree)ASAP pls
By jfAdik in forum Forum LobbyReplies: 0Last Post: 04-04-2010, 08:40 AM -
Binary search tree search method
By chopo1980 in forum New To JavaReplies: 2Last Post: 12-10-2009, 02:42 AM -
Implementing binary search tree
By javanovice in forum New To JavaReplies: 0Last Post: 08-12-2009, 06:14 AM
Bookmarks