Java Jave,我正在尝试将一个二叉搜索树保存到一个文件中并进行还原,这样即使程序终止,它也会保存信息

Java Jave,我正在尝试将一个二叉搜索树保存到一个文件中并进行还原,这样即使程序终止,它也会保存信息,java,Java,我所要做的就是调用这两种方法还原和保存,在添加、删除、查找界面之后,将二叉搜索树保存到一个文件中。。。process()是处理这些操作的方法。无论我如何尝试这两个恢复和保存工作 我完全不知道如何实施我发现的这个解决方案: private菜单(){ 接口_1(); //恢复(); 过程(); //save(); } 私有二进制搜索树电话簿; 私有void add(字符串takeName、字符串takePhone){ if(pBook.add(takeName,takePhone)){ Syste

我所要做的就是调用这两种方法还原和保存,在添加、删除、查找界面之后,将二叉搜索树保存到一个文件中。。。process()是处理这些操作的方法。无论我如何尝试这两个恢复和保存工作

我完全不知道如何实施我发现的这个解决方案:

private菜单(){
接口_1();
//恢复();
过程();
//save();
}
私有二进制搜索树电话簿;
私有void add(字符串takeName、字符串takePhone){
if(pBook.add(takeName,takePhone)){
System.out.println(String.format(“添加(%s,%s)操作成功。”,
takeName,takePhone);
}否则{
System.out.println(String.format(“添加(%s,%s)操作失败”,
takeName,takePhone);
}
}
私有void add(字符串takeName、字符串takePhone){
if(pBook.add(takeName,takePhone)){
System.out.println(String.format(“添加(%s,%s)操作成功。”,
takeName,takePhone);
}否则{
System.out.println(String.format(“添加(%s,%s)操作失败”,
takeName,takePhone);
}
}

请原谅我的理解,但您面临的问题是如何在其他地方重建树吗?如果是这样,那么您可以使用inoorder和Postorder/Preorder遍历将树保存在文件中,然后在以后重新构建它。这是一个广义过程,甚至可以用于二叉树,因此BST可以用同样的方法重建。 为此,请执行inorder和preorder遍历,并将它们保存到某个文件中,然后重新构建。您可以查看以下示例,了解如何重建

希望能有帮助

比尔,
ShallOvercome。

这是针对BinaryTree的,我正在使用一个二进制搜索树。您是否检查了BinaryTree和BinarySearchTree之间的差异?为什么你认为一个解决方案对另一个不起作用?我刚才给了你一个指针,你可以参考它来制定你的解决方案。我们不是来这里感谢你的建议,但我只是感到困惑。就像我对每个节点都有一个add函数一样,我如何将这些节点转化为一个树。好的,所以你要构建的不是一个BST,而是一个列表,因为它只有add函数。因此,首先,你必须设计你想要做什么的方法。我建议在开始编写代码之前给它一些时间。PS:看起来你正在创建一个电话簿,所以与其专注于BST,不如看看trie。
                     private Menu() {
                Interface_1();
            // restore();
            process();
            // save();
               }


    private BinarySearchTree<Person, String> phoneBook;


     private void add(String takeName, String takePhone) {
            if (pBook.add(takeName, takePhone)) {
            System.out.println(String.format("add(%s, %s) Operation Succeded.",
                            takeName, takePhone));
                    } else {
                        System.out.println(String.format("add(%s, %s) Operation Failed.",
                    takeName, takePhone));
    }
}


           private void add(String takeName, String takePhone) {
    if (pBook.add(takeName, takePhone)) {
        System.out.println(String.format("add(%s, %s) Operation Succeded.",
                takeName, takePhone));
    } else {
        System.out.println(String.format("add(%s, %s) Operation Failed.",
                takeName, takePhone));
    }
}