我必须创建一个链表数据管理项目(单个),我对如何创建不同引用的节点感到困惑。据我所知,节点是一个对象,要创建一个对象,我们只需编写(classname ref = new constructor()
。现在我要保存的是第一位员工的数据
在一个节点中,第二个雇员数据在第二个节点上。。。这是我的问题,对于第二个节点,我需要再次编写语法来创建第二个节点,如果我想保存n个员工记录,如何编写n个节点的语法。我知道一个节点包含两个内容,即第二个节点的数据和地址。例如:
class node {
String data ;
node next;
node(String data , node a ){
this.data = data;
next = a ;
}
}
main(){
node n1 = new node("a",n2);
node n2 = new node("b",null);
till nth.
/*well i thought that if i could loop this so that it automatically
*create nodes but even if i did that then the data will be saved on same
reference/address */
}
希望我已根据您的需要澄清了我的问题。
答案 0 :(得分:3)
仅迭代并保留对您在上一次迭代中创建的节点的引用。
List<String> data = Arrays.asList("a", "b", "c");
Node previousNode = null;
for (String datum : data)
{
previousNode = new Node(datum, previousNode);
}
//previousNode now contains a reference to the last node (C)
答案 1 :(得分:0)
无法在循环中创建多个名称不同的变量。但是,您可以将它们放在列表中,或者-因为本质上是在创建链接列表-您可能只想保留最后创建的节点,并在需要对它们执行任何操作时遍历嵌套节点。
这将为您提供变量n中的最后一个节点:
Node n;
Arrays.asList("a", "b", "c", ...).forEach(s -> n = new Node(s, n));
这将为您提供节点列表:
Node n;
List<Node> nodes = new ArrayList<>();
for (String s : Arrays.asList("a", "b", "c", ...)) {
n = new Node(s, n);
nodes.add(n);
}
答案 2 :(得分:0)
head
和ref
来保存列表的开头head.next = newNode
head
=> head = head.next
ref
作为标题List<String> list = Arrays.asList("a", "b", "c", "d", "e");
Node head = new Node(list.get(0), null);
Node ref = head;
for (int i = 1; i < list.size(); i++) {
head.next = new Node(list.get(i), null);
head = head.next;
}
// Your list is ready, you can iterate through it as such
while (ref != null) {
System.out.println(ref.data);
ref = ref.next;
}