Java 使用节点的自定义链表
我很难使用链表/节点,我基本上只能使用节点在Java中创建自己的链表 这就是我要做的: 这就是我目前的情况:Java 使用节点的自定义链表,java,list,Java,List,我很难使用链表/节点,我基本上只能使用节点在Java中创建自己的链表 这就是我要做的: 这就是我目前的情况: public class index { public static void main(String[] args) { //Front = start of list nameNode head = null; //head = add(head,"Bob"); //head.next = add(head,"Cat"); //hea
public class index {
public static void main(String[] args) {
//Front = start of list
nameNode head = null;
//head = add(head,"Bob");
//head.next = add(head,"Cat");
//head.next.next = add(head, "Dog");
nameNode cNode = new nameNode("C", null);
nameNode bNode = new nameNode("B",cNode);
nameNode aNode = new nameNode("A",bNode);
System.out.println(aNode.next);
}
// This adds nodes to front of list
public static nameNode add(nameNode head, String movie)
{
nameNode temp = new nameNode(movie, null);
temp.next = head;
return temp;
}
//Private node class that creates new nodes
private static class nameNode {
public String data;
public nameNode next;
public nameNode(String data, nameNode next){
this.data = data;
this.next = next;
}
public String toString(){
return data + "";
}
}
}
那么,我应该如何通过节点创建一个顶部列表和底部子列表呢。所以我的想法是基本上为B创建一个节点,然后将Ben和Bob链接在一起,哪个链接到B,然后将B链接到D,依此类推
我也在玩节点,我认为我现在制作它们的方式是正确的?有没有其他方法可以自动创建对象,而不是我自己创建对象
我想能够做的是使用add方法基本上创建一个新节点……但我不知道如何真正做到这一点,关于如何做到这一点的任何提示?请查找
LinkedList的实现
我在图形表示中注意到的是,每个节点都指向数据,以及下一个节点
但是您的nameNode
类只有下一个指针。您可能必须使用LinkedList
类中使用的另一个引用
还可以尝试使用泛型,以便您可以放置任何数据。检查Java的LinkedList实现谢谢您的回复,您能告诉我如何执行/查看此操作吗?我是java的新手,我还不能100%确定如何使用javadoc:这个图实际上看起来更像一个地图而不是一个列表。或者一张清单,你到底想做什么?单链表,列表列表,还是什么?如果是单链表,为什么图表显示从主列表分支出来的子列表?因为你有子列表,你想要的是一个列表列表,对吗?我认为列表列表在这里不是正确的实现,他正在从头开始创建一个链表实现,因此,他需要创建自己的链表节点。他需要“字母”列表节点来维护两个指针,一个指向下一个“字母”节点,另一个指向子列表中的第一个“名称”节点。“名称”节点应保持指向子列表中下一个“名称”节点的单个指针。在这一点上,请特别注意如何命名节点类,以确保传达每个节点的实际功能。。。在双链接列表中,一个点指向上一个点,另一个点指向下一个点。类似地,您也可以有两个以上的指针:)您所说的“每个节点都指向数据以及下一个节点”是什么意思?
public class index {
public static void main(String[] args) {
//Front = start of list
nameNode head = null;
//head = add(head,"Bob");
//head.next = add(head,"Cat");
//head.next.next = add(head, "Dog");
nameNode cNode = new nameNode("C", null);
nameNode bNode = new nameNode("B",cNode);
nameNode aNode = new nameNode("A",bNode);
System.out.println(aNode.next);
}
// This adds nodes to front of list
public static nameNode add(nameNode head, String movie)
{
nameNode temp = new nameNode(movie, null);
temp.next = head;
return temp;
}
//Private node class that creates new nodes
private static class nameNode {
public String data;
public nameNode next;
public nameNode(String data, nameNode next){
this.data = data;
this.next = next;
}
public String toString(){
return data + "";
}
}
}