JavaScript中链表和二叉树均通过对象引用实现:链表节点含val和next,树节点含val、left、right;二者均为非连续引用结构,链表线性单后继,树非线性多子节点,均适合递归操作。

链表由节点(Node)组成,每个节点包含数据和指向下一个节点的引用。JavaScript 没有原生链表类型,但可以用对象模拟:
单向链表示例:
class ListNode {
constructor(val, next = null) {
this.val = val;
this.next = next;
}
}
// 创建链表:1 → 2 → 3
const head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
常用操作如插入、删除、遍历,都依赖手动更新 next 引用。比如在头部插入:
注意:JS 中没有指针概念,next 是对象引用,修改它只是改变属性值,不涉及内存地址操作。
立即学习“Java免费学习笔记(深入)”;
最常用的是基于对象的节点结构,每个节点含值、左子节点、右子节点:
class TreeNode {
constructor(val, left = null, right = null) {
this.val = val;
this.left = left;
this.right = right;
}
}
// 构建树: 1
// / \
// 2 3
// / \
// 4 5
const root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);
这种表示方式简洁直观,适合递归遍历(前序、中序、后序)、查找、求深度等操作。例如前序遍历:
function preorder(node) {
if (!node) return;
console.log(node.val); // 访问根
preorder(node.left); // 遍历左
preorder(node.right); // 遍历右
}
两者都是**引用型非连续结构**,节点之间靠引用连接,不是数组下标索引。
日常开发很少手写链表或树——数组、Map、Set 更常用。但在算法题、状态管理(如 AST 解析)、图遍历前置知识中,理解其 JS 表达方式很关键。
调试时可打印节点结构:
console.log(JSON.stringify(root, null, 2)); // 注意:循环引用会报错,需自定义 replacer
若需可视化树形结构,可用控制台 console.dir(root) 展开查看引用关系。
以上就是javascript如何实现数据结构_链表和树在js中怎样表示的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号