Note that there are some explanatory texts on larger screens.

plurals
  1. POJava - loading a binary tree from a text file
    primarykey
    data
    text
    <p>I'm attempting to load a binary tree from the corresponding string file. I get a NoSuchElementException error pretty early on in the code(the exact line is commented), and I'm not sure that the algorithm will work to begin with. The text file is ordered like this:</p> <pre><code>hello 0 0 my 0 0 name 1 1 </code></pre> <p>where the first number indicates whether or not the node has a left child, and the second number indicates whether or not the node has a right child. </p> <p>My BinaryTree class has two subclasses, ConsTree and EmptyTree, and each tree has its own left and right subtrees.</p> <p>Here is the code for the method:</p> <pre><code>BinaryTree&lt;String&gt; loadFile(String filename) { File file = new File(filename); Scanner scanny = new Scanner(file); Stack&lt;BinaryTree&lt;String&gt;&gt; stack = new Stack&lt;BinaryTree&lt;String&gt;&gt;(); while(scanny.hasNextLine()) { String data = scanny.next(); int leftChild = scanny.nextInt(); int rightChild = scanny.nextInt(); ConsTree&lt;String&gt; tree = new ConsTree&lt;String&gt;(data, null, null); if(rightChild == 1) //this line throws a NoSuchElementException { tree.right = stack.pop(); } if(leftChild == 1) { tree.left = stack.pop(); } stack.push(tree); } return stack.pop(); } </code></pre> <p>Here are the constructors for my ConsTree class. This is the only other code I had when I made the method.</p> <pre><code>public ConsTree(T data, BinaryTree&lt;T&gt; left, BinaryTree&lt;T&gt; right) { this.data = data; this.left = left; this.right = right; } public ConsTree(T data) { this.left = new EmptyTree(); this.right = new EmptyTree(); this.data = data; } </code></pre> <p>The constructor for the EmptyTree class is completely blank. </p> <p>Here is what I'm using to test the method:</p> <pre><code> public static void main(String[] args) { Loader l = new Loader(); //the class with the load method in it BinaryTree&lt;String&gt; t = l.loadFile(args[0]); System.out.println(t); } </code></pre> <p>args[0] contains the name of the text file that has the contents listed towards the beginning of the question.</p> <p>If anyone could put me in the right direction, that would be helpful.</p> <p>If you need any other info, please let me know. </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload