gpt4 book ai didi

java - JAVA的引用和C、C++的引用有区别吗?

转载 作者:行者123 更新时间:2023-11-30 16:22:24 26 4
gpt4 key购买 nike

我一直在练习和学习C和C++的数据结构。现在我经常使用JAVA语言,并一直在用JAVA练习数据结构。

然后就出现了一个问题。在创建树的练习过程中,我做了像C和C++一样的Coding,但是没有添加Node。

private Node<E> root;

public void insert(E item) {

Node<E> r = root;
insert(r, item);
}

private void insert(Node<E> node, E item) {

if (node == null) {

System.out.println(item);
Node<E> newNode = new Node<>(null, item, null);
node = newNode;
return;
}

if (node.item.compareTo(item) == -1)
insert(node.prev, item);
else
insert(node.next, item);
}

二叉搜索树。

编码如上完成,没有生成任何内容。

顺便说一下,

    private Node<E> root;

public void insert(E item) {

if (root == null) {

Node<E> newNode = new Node<>(null, item, null);
root = newNode;
return;
}
Node<E> r = root;
insert(r, item);
}

private void insert(Node<E> node, E item) {

if (node.item.compareTo(item) == -1) {

if(node.prev == null) {

Node<E> newNode = new Node<>(null, item, null);
node.prev = newNode;
}
else
insert(node.prev, item);
}
else {

if(node.next == null) {

Node<E> newNode = new Node<>(null, item, null);
node.next = newNode;
}
else
insert(node.next, item);
}
}

由于上述编码而创建了树。

总而言之,

C或C++中的引用与JAVA中的引用不同吗? (这是一个愚蠢的问题,但如果您能解释上述两者之间的区别,我将不胜感激。)

感谢您的回复。

最佳答案

在java中,函数中的对象参数不像c中的引用,而更像指针,通过值传递,在c中,其中“.” java 中的运算符的作用类似于 c 中的“->”运算符。

所以如果给参数节点赋值,就相当于给c中的指针节点赋值了一个新的地址,其中指针是按值传递的。但是,如果您通过“.”更改其参数来更改对象本身。运算符,就像c中使用“->”运算符更改其参数一样。

关于java - JAVA的引用和C、C++的引用有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54453868/

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