优化递归获取树形数据太慢_树形化 Parent-Child 数组

4de6eb98015ca8a0fb15680cae6dcc9f.png

1. 前言

最近在写一些东西,需要存储一些系统的菜单到数据库。 id 标识当前菜单,pid 标识父级菜单,这样将一个系统的菜单目录存储到数据。获取到某一个系统的所有菜单,得到的数据可以简化成 Parent-Child 的一个数组,而返回给调用方,是需要做一个树形化的结构。

2. 模型

[
	

上述一个数组中,0 是一个没有任何意义的菜单,一个虚拟的根级菜单,1 表示菜单 1,它的父级菜单是 0,那么 1 就是一个一级菜单。[2 1] 表示菜单 2 的父级菜单是菜单 1,那么 2 就是 二级菜单。其表示的树形结构如下;

6dd9bad6a4f7f19f5130c2125861abd3.png

3. 实现

因为知道 0 是根节点,找到 0 节点,再找出其所有子节点,然后递归改节点。如上图,如果该树形结构是一个单叉树的话,数组 length 过大的话,递归会爆栈的&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值