私は自分のBSTをテキストファイルに書き込もうとしていますが、動作していないものもあります。今のところ、ファイルに何も書き込まれていないので、私はどこでうんざりしたのか知りたいです。問題はBinaryTree.java
です。 display()
メソッドは、項目をStudent.txt
ファイルに配置しようとしています。私のBSTがファイルに書き込まれないのはなぜですか?
ここに私のNode.java
です:
class Node {
Student data;
Faculty data2;
Node left;
Node right;
public Node(Student data) {
this.data = data;
this.left = left;
this.right = left;
}
public Node(Faculty data2) {
this.data2 = data2;
this.left = left;
this.right = right;
}
}
は、ここに私のBinaryTree.java
です:
int index = 0;
String[] sa = new String[index];
public void studentArray() {
studentArray(root,index);
}
public int studentArray(Node root, int index) {
if(root.left != null) {
index = studentArray(root.left, index);
}
sa[++index] = root.data.getLastName().toString();
if(root.right != null) {
index = studentArray(root.right,index);
}
return index;
}
public void displayStudent(Node root) throws IOException {
if(root != null) { // If root isn't empty.
if(root.left != null) {
displayStudent(root.left); // Recursively display left nodes.
}
System.out.println(root.data.toString()); // Print to the console data that's in the root in order.
if(root.right != null) {
displayStudent(root.right); // Recursively display right nodes.
}
}
String file = "Student.txt";
FileWriter fw = new FileWriter(new File(file));
try {
for(index = 0; index < sa.length; index++) {
fw.write(sa[index] + " ");
}
fw.close();
} catch(Exception e) {
System.out.println("File not found.");
}
}
ここに私のMain.java
です:
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
Student student1 = new Student("Mike", "Piazza", "S3123456");
Student student2 = new Student("Jack", "Jill", "S3123456");
Student student3 = new Student("Alice", "Jones", "S3123456");
BinaryTree bt = new BinaryTree();
bt.insertStudent(student1);
bt.insertStudent(student2);
bt.insertStudent(student3);
bt.displayStudent(bt.root);
}
ここに私のStudent.txt
ファイルです:
*displays nothing*
ご回答ありがとうございます。大変感謝しています:D! 'ArrayList'の部分をもう少し拡張してください。具体的には、 'sa.get(i)'部分と 'for(s:sa)'部分です。ありがとうございました :)。 – bojack
答えを拡張しました –