将数据读回二进制搜索树

时间:2014-04-13 23:05:19

标签: java serialization binary-search-tree

我有一个程序可以添加一个包含(int studentNumber, String firstName, String lastName, String major, double gpa)的节点,并且"保存"它到一个文件,我有这个方法:

public void saveRecord (Node focusNode) {

    JOptionPane.showMessageDialog(null,"saving file...");
    try
    {
        ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(file));         

        if (focusNode != null){

            System.out.println(focusNode);
            output.writeObject((focusNode));

            preOrderTraverseTree(focusNode.leftChild);

            preOrderTraverseTree(focusNode.rightChild);
        }//end if
        output.close();

    }
   //catch exceptions
}//end save

现在,我想撤回已编写的每个节点,并能够以不同的方式对它们进行排序(例如major,gpa等)。如何在保留所有字段时这样做,以便在我阅读它们时可以搜索到它们?我已经考虑过把它们读回一个列表,但它添加了每一行,而没有提到前面提到的参数。我的addNode方法使用这些参数将每个节点添加到树中,因此我无法调用它。我该怎么做?

1 个答案:

答案 0 :(得分:1)

我在回答您的其他问题here时已将此问题的答案包括在内。