算法需要通过函数来体现.
树型结构的遍历是算法的顶峰.
虽然还有更复杂的图的结构,但是图的遍历存在不确定性,不够严谨完美.
树型结构是一种层次(嵌套)结构,就象俄罗斯套娃一样,子树与原始树的结构相同.
整个世界都可以通过树型结构的数据来描述.
通过递归遍历可以实现对树型结构的遍历.
对于树型结构的递归遍历意味着控制了整个世界
//树型结构的递归算法:
//将 struct{id,text,pid} 结构的数组(allitems)转换成:树型(层级)结构的 map数组
//使用方法:maketreee(allitems,0),0 表示根元素的 pid = 0
func makeTreee(allitems, root int) []interface{} {
var mapArr []interface{}
for _, item := range allitems {
if item.pid == root {
//create new node:
newNode := make(map[string]interface{})
//set text for new node:
newNode["text"] = item.text
//create children(sub_tree) of the new node:
children := makeTreee(allitems, item.id)
if len(children) > 0 {
newNode["children"] = children
}
//append new node:
mapArr = append(mapArr, newNode)
}
}
return mapArr
}