gpt4 book ai didi

Java二叉树主要方法

转载 作者:行者123 更新时间:2023-12-02 12:30:10 26 4
gpt4 key购买 nike

我有一个类节点

class Node{
int val;
Node parent;
Node left;
Node right;

public Node (int val){
this.val = val;
}
}

我有几个方法:

 public class Tree{
public Node root = null;

void insertNodeSorted(Node x, Node tree) {
if (x.val < tree.val) {
if (tree.left == null) {
tree.left = x;
}
else
insertNodeSorted(x, tree.left);
}
else {
if (tree.right == null) {
tree.right = x;
}
else
insertNodeSorted(x, tree.right);
}
} // end insertNodeSorted


void deleteNodeSorted(Node x) {
if (root == null)
return;
else
root = deleteNodeSorted(x, root);
}
Node deleteNodeSorted(Node x, Node tree) {
if (x.val < tree.val)
tree.left = deleteNodeSorted(x, tree.left);
else if (x.val > tree.val)
tree.right = deleteNodeSorted(x, tree.right);
else
tree = replaceNodeSorted(tree);
return tree;
} // end deleteNodeSorted

// Additional Method
Node replaceNodeSorted(Node tree) {
if (tree.right == null)
tree = tree.left;
else if (tree.left == null)
tree = tree.right;
else
tree.right = findReplacement(tree.right, tree);
return tree;
} // end replaceNodeSorted
Node findReplacement(Node tree, Node replace) {
if (tree.left != null)
tree.left = findReplacement(tree.left, replace);
else {
replace.val = tree.val;
tree = tree.right;
}
return tree;
} // end findReplacement

我想编译树,但我不知道我到底需要在 main 方法中编写什么。

public static void main(String[] args){

Tree t = new Tree();
t.insertNodeSorted();

为了打印树,我必须在括号中写什么? (我知道我仍然需要在方法中添加 System.out.println(val); ..)

最佳答案

您定义了一个保存root节点的变量,因此不需要为insertNodeSorted方法传递参数tree。您始终可以使用root 节点。

添加一种仅采用一个参数的方法。

public void insertNodeSorted(Node x) {
if (root == null) {
root = x;
return;
}
insertNodeSorted(x, root);
}

将另一个带有两个参数的方法定义为private

 private void insertNodeSorted(Node x, Node tree) {
...
}

现在您可以按如下方式插入元素:

Tree t = new Tree();
t.insertNodeSorted(new Node(1));
t.insertNodeSorted(new Node(134));
t.insertNodeSorted(new Node(13));
t.insertNodeSorted(new Node(4));
...

关于Java二叉树主要方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45306344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com