Javascript中链接列表和节点的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript中链接列表和节点的问题相关的知识,希望对你有一定的参考价值。
我目前正在用javascript编写代码,我是新手,我需要帮助我的代码。我想创建一个包含节点(显然)的树,它指向链接列表,此列表将包含节点子节点。链接列表外我唯一需要的节点是我的根节点。
无论如何,我的问题是将节点添加到我父节点的链接列表中。例:
Root - > LinkedList(Node-> Node-> Node-> null)每个都指向另一个Linked List。
当我尝试在链接列表中添加节点时,我的第一个节点被覆盖。
码:
var list = new LinkedList();
var rootnode = new Node("Root");
list.add(rootnode, 20);
list.add(rootnode, "Como");
list.add(rootnode, "Estas");
list.add(rootnode, "ggg");
list.print(rootnode);
function LinkedList() {
this.first = null;
this.add = LinkedListAdd;
this.print = LinkedListPrint;
this.search = LinkedListSearch;
}
function Node(value) {
this.value = value;
this.next = null;
this.child = new LinkedList();
}
function LinkedListAdd(node, item) {
if (!node.child.first) {
node.child.first = new Node(item);
} else {
while (node.child.first.next) {
node.child.first = node.child.first.next;
}
node.child.first.next = new Node(item);
}
}
打印我的rootnode.child.first
给了我:"Estas"
答案
你不应该覆盖node.child.first
,而是取一个局部变量:
let acc = node.child.first;
while(acc.next) acc = acc.next;
acc.next = new Node(item);
提示:您可以使用LinkedListAdd
访问this
中的LinkedList,这样您就可以实现:
root.children.add(10);
那么你不需要这个不必要的list
。
以上是关于Javascript中链接列表和节点的问题的主要内容,如果未能解决你的问题,请参考以下文章
javascript 用于在节点#nodejs #javascript内设置react app的代码片段
使用开发工具控制台中的 JavaScript 片段从 HTML 获取 YouTube 播放列表标题和频道名称