如何插入二叉搜索树上的下一个可用节点?

瑞安威廉姆斯

我有一个需要构建的程序,我通过打开一个文件并将文件中的单词添加到 BST 来继续添加到二叉搜索树 (BST)。我已经弄清楚如何打开一个文件并将原始文件中的单词存储在树中,但是当我尝试打开第二个文件以继续添加到树中时,它就像我从头开始一样。如何指向下一个可用节点,以便我可以继续插入其中。

我曾尝试使用我的插入功能,但它就像我从头开始并从前一个文件中删除所有内容一样。

我的节点类:

class BSTNode {
    String word;
    int data;
    BSTNode parent;
    BSTNode left;
    BSTNode right;


    public BSTNode(String word, int data) {
        this.word = word;
        this.data = data;
        this.left = null;
        this.right = null;
        this.parent = null;
    }


    public BSTNode() {
    }
}

我的插入功能:

  void insert(BSTNode node, String word, int data) {
        if (search(node, word)) {
        } else {
            insertNode(node, word, data);
        }
    }

我选择将另一个文件添加到 BST 的按钮:

} else if (evt.getSource().equals(anotherFile)) {
                JFileChooser pickFile = new JFileChooser();
                int dialog = pickFile.showOpenDialog(GUI.this);
                if (dialog == JFileChooser.APPROVE_OPTION) {
                    GUI.this.file.setText(pickFile.getSelectedFile().getName());
                    directory.setText(pickFile.getCurrentDirectory().toString());
                }
                if (dialog == JFileChooser.CANCEL_OPTION) {
                    GUI.this.file.setText("You pressed cancel");
                    directory.setText("");
                }
                try {
                    Scanner scanner = new Scanner(file);
                    BSTFunctions bstf = new BSTFunctions();
                    while (scanner.hasNext()) {
                        bstf.insert(bstf.ROOT, scanner.next().toLowerCase().trim(), 1);
                    }

                    bstf.wordCount(bstf.ROOT);
                    bstf.listInOrder(bstf.ROOT);

                    scanner.close();
                } catch (IOException e1) {

                    results.append("\n\u2022YOU MUST SELECT A FILE TO CONTINUE");
                }
阿苏

BSTFunctions bstf = new BSTFunctions();你的领域GUI内声明它的类代替actionPerformed如果您在方法中声明它,则每次该方法运行时您都会从头开始一个新方法。

class GUI extends JFrame {
    private final BSTFunctions bstf = new BSTFunctions();
    // everything else
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 C 中的二叉搜索树中找到比选定数字更高的值的下一个节点?

二叉搜索树有序迭代器下一个方法

如何在二叉树中找到下一个顺序继承者?

在二叉树中搜索一个节点

二叉搜索树比较一个节点类型字符串和另一个

如何推动从二叉树节点到一个数组?

如何从python中的二叉搜索树中找到一个值?

将节点插入二叉搜索树(C)

如何使用模式获取 DOM 中的下一个可用节点?

XPATH搜索下一个节点

如何将节点随机插入二叉搜索树?

如何在节点中插入字符串(由用户输入)?(二叉搜索树)

二叉搜索树上广度优先搜索的Python实现

用户想要删除一个值,但是该值不在二叉树上。怎么治疗呢?

方案-二叉搜索树的内部节点数,该内部节点恰好具有一个子节点

从具有 2 个节点的二叉搜索树中删除一个节点,可以使用不同的方法吗?

具有一个参数的递归搜索二叉搜索树

如何找到一个节点是否存在于Java的二叉树中?

二叉树上的深度优先搜索

复制品被打印在二叉搜索树上

二叉搜索树性能在大树上失败

我如何在树上移动到下一个孩子?

如何在二叉搜索树中查找节点

如何识别二叉搜索树的叶节点

如何从二叉搜索树中打印给定的节点?

如何从二叉搜索树中删除节点

我们如何在二叉搜索树上进行操作

如何编写一个函数来检查给定的二叉搜索树是否包含给定的值?

如何找出下一个可用号码