[Algorithms] Tree Data Structure in JavaScript
Posted Answer1215
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Algorithms] Tree Data Structure in JavaScript相关的知识,希望对你有一定的参考价值。
In a tree, nodes have a single parent node and may have many children nodes. They never have more than one parent nor point to any siblings.
The most common tree structure you see is a web page. The underlying structure is often called the "DOM tree". The html
element forms the root of our tree, with children of head
and body
, so on and so forth. In this lesson, we‘ll create a quick example of a DOM tree with our tree data structure.
function crateNode (key) { let children = []; return { key, children, addChild (cKey) { const childNode = crateNode(cKey) this.children.push(childNode) return childNode; } } } function createTree (rootKey) { const root = crateNode(rootKey); function print () { let result = ‘‘; function traverse (node, visitFn, depth) { visitFn(node, depth); if (node.children.length) { node.children.forEach(n => traverse(n, visitFn, depth + 1)) } } function addKeyToResult(node, depth) { result += result.length === 0 ? node.key : ` ${‘ ‘.repeat(depth * 2)}${node.key}` } traverse(root, addKeyToResult, 0) return result; } return { root, print } } const dom = createTree(‘html‘) const head = dom.root.addChild(‘head‘) const body = dom.root.addChild(‘body‘) const title = head.addChild(‘title - egghead Tree Lesson‘) const header = body.addChild(‘header‘) const main = body.addChild(‘main‘) const footer = body.addChild(‘footer‘) const h1 = header.addChild(‘h1 - Tree Lesson‘) const p = main.addChild(‘p - Learn about trees!‘) const copyright = footer.addChild(`Copyright ${new Date().getFullYear()}`) console.log(dom.print()) /* html head title - egghead Tree Lesson body header h1 - Tree Lesson main p - Learn about trees! footer Copyright 2018 */
以上是关于[Algorithms] Tree Data Structure in JavaScript的主要内容,如果未能解决你的问题,请参考以下文章
Algorithms - Data Structure - Binary Search Tree - 数据结构之二叉搜索树
leetcode-algorithms-109. Convert Sorted List to Binary Search Tree
树及其衍生算法(Trees and tree algorithms)
Coursera Algorithms week4 基础标签表 练习测验:Check if a binary tree is a BST