请教一个树平铺的问题

2020-09-01 18:18:29 +08:00
 cheng8984
type Tree struct {
Code string `json:"code"`
Parent string `json:"code"`
Child []*OrgTree `json:"child"`
}

type Flat struct {
Code string
Parent string
Lv0Code string
Lv1Code string
Lv2Code string
Lv3Code string
Lv4Code string
Lv5Code string
}

树的层级为 6,求平铺这颗树,得到一个[]Flat 切片,要求每一层的节点对应 Flat 里的 lv 层 Code,比如第二层的&Flat{Code:"test2",Parent:"root",lv0Code:"rootCode",lv1Code:"test2"}
1301 次点击
所在节点    Go 编程语言
3 条回复
EscYezi
2020-09-02 07:41:08 +08:00
简单一点的解法:把树分成层,根是第一层,根的子节点是第二层,依次类推,然后每一层进行遍历。
cheng8984
2020-09-02 09:37:54 +08:00
@EscYezi 是这样的,我写了 5 层遍历 把自己丑哭了,想想递归应该是更好的解法,但是想了半天 没想清楚怎么写这个递归
mind3x
2020-09-02 15:44:10 +08:00
BFS 遍历,经典做法是用一个队列,不需要递归

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/703256

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX