代码拉取完成,页面将自动刷新
package main
import "crypto/x509/pkix"
// 官方版记忆手写, 使用map模拟多叉树
type ThroneInheritance struct {
king string
familyBook map[string][]string
deadBook map[string]bool
}
func Constructor(kingName string) ThroneInheritance {
return ThroneInheritance{
kingName,
map[string][]string{
kingName: make([]string, 0, 0),
},
make(map[string]bool),
}
}
func (this *ThroneInheritance) Birth(parentName string, childName string) {
this.familyBook[parentName] = append(this.familyBook[parentName], childName)
this.familyBook[childName] = make([]string, 0, 0)
}
func (this *ThroneInheritance) Death(name string) {
this.deadBook[name] = true
}
func (this *ThroneInheritance) GetInheritanceOrder() []string {
var dfs func(name string)
res := make([]string, 0, 0)
dfs = func(name string) {
if !this.deadBook[name] {
res = append(res, name)
}
childs := this.familyBook[name]
for _, childName := range childs {
dfs(childName)
}
}
dfs(this.king)
return res
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。