我正在浏览互联网上的链表操作代码,发现以下代码片段我无法理解。
class Node
{
int data;
Node node; //reference to the next node
:
:
}
我知道Node node;
这行代码是指向下一个节点的引用,因为链表中的节点含有数据和下一个节点的地址。
但是我不理解其中的概念。
有人能解释一下,如果一个变量以类名作为其数据类型,在Java中是什么概念/理论吗?
我正在浏览互联网上的链表操作代码,发现以下代码片段我无法理解。
class Node
{
int data;
Node node; //reference to the next node
:
:
}
我知道Node node;
这行代码是指向下一个节点的引用,因为链表中的节点含有数据和下一个节点的地址。
但是我不理解其中的概念。
有人能解释一下,如果一个变量以类名作为其数据类型,在Java中是什么概念/理论吗?
//reference to the next node
但是通过阅读Node
类的其余代码和/或使用该类的代码,你可能可以弄清楚这一点。
值得注意的是,我可能会将变量命名为next
而不是node
。但我在代码审查中可能不会指出作者的选择有误。
总的来说,关于变量名应传达多少意义以及如何传达意义存在不同的观点。但是没有普遍接受的规则。因此,你需要准备好阅读代码,而不是依赖变量名。
如果代码很复杂,或者你正在尝试学习一种新的(对你来说)数据结构,则可能会遇到问题。但是,在后一种情况下,解决方案可能是找到更好的代码进行学习。
例如,任何关于数据结构的好教科书都会提供链表的示例代码。该代码应编写得更好,并应有附带文本加以解释。如果你不想购买/借阅教科书,你可能可以在互联网上找到更好的示例代码进行学习。
class Node {
Node previous;
Node next;
}
Directory
类:class Directory {
Directory[] subDirectories;
File[] files;
}
或者一个 JSONObject
类,它保存了嵌套的键/值对的 JSONObject
class JSONObject {
Map<String, JSONObject> children;
}
等等,等等。
//Node holds reference to Node
class Node{
Node link;
int info;
public Node(){
}
public Node(int info){
this.info=info;
}
public String toString(){
return Integer.toString(info);
}
}
class Linked{
Node head;//head reference denoted the beginning of the linkedlist
private int size=0;
public void add(int info){
if (size==0){
head=new Node(info);
}else{
Node temp=head;
while(temp.link!=null){
temp=temp.link;
}
temp.link=new Node(info);
}
size++;
}
public String toString(){
String str="";
var temp=head;
while(temp!=null){
str+=temp.info+" ";
temp=temp.link;
}
return str;
}
public static void main(String ... $){
Linked link=new Linked();
link.add(10);
link.add(555);
link.add(55);
var out=System.out;
out.println(link);
}
}
String s = "a value";
- 这是一个名为s
的String
实例。这里有一个名为node
的Node
实例。你不理解的部分是什么? - Elliott Frisch