用多少眼泪才能让你相信 发表于 2024-9-19 15:40:45

【JavaScript】数据布局之树

什么是树形布局?



[*]一种分层数据的抽象模型,用来分层级关系的。
[*]虚拟dom它所构造的谁人数据原理就是树形布局
深度优先搜刮(遍历)- 递归



[*]从根出发,尽可能深的搜刮树的节点
[*]本领

[*]访问根节点
[*]对根节点的children挨个进行深度优化搜刮

https://i-blog.csdnimg.cn/direct/6e15089066634116b8373120fc17d921.png#pic_centerhttps://i-blog.csdnimg.cn/direct/fb1a4a15032e4765873ea57868d6df92.png#pic_centerhttps://i-blog.csdnimg.cn/direct/8d601ec950734680803c663e94c36041.png#pic_center
广度优先搜刮(遍历)



[*]从根出发,优先访问离根节点最近的节点
[*]本领

[*]新建一个队列,把根节点入队
[*]把队头出队
[*]把队头的children挨个入队
[*]重复上面二三步调,直到队列为空为止

https://i-blog.csdnimg.cn/direct/e9eee2249ea44c82ad26655613d86cde.png#pic_centerhttps://i-blog.csdnimg.cn/direct/3f596a59da874d18a5120a153584b803.png#pic_center
树 - 多叉树



[*]dom布局是典型的多叉树
https://i-blog.csdnimg.cn/direct/80ccd5662e354d7a979c6787f2e722bf.png#pic_center
树 - 二叉树

https://i-blog.csdnimg.cn/direct/7f12a0b62ed043f5a05ebf3fa4eff27c.png#pic_center


[*]前序遍历 & 先序遍历

[*]规则:根 左 右
[*]先从根出发 > 拿左子树的左 > 拿左子树的右,等左边都竣事 > 再拿右子树的左 > 拿右子树的右
[*]可以通过递归算法实现,也可以通过迭代算法(栈)实现。

[*]中序遍历

[*]规则:左 根 右

[*]后序遍历

[*]规则:左 右 根

leetcode 习题

二叉树习题

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【JavaScript】数据布局之树