golang 遍历树状结构

以遍历Block结构为例,Block结构如下:

type Block struct {
    Inside   bool
    Nest     int
    Boundary bool
    Incise   []*Block
}

可以看到Block中包含一个[]*Block类型的属性,在Block中,若Inside为true则说明Incise不为空。我们的目的是遍历一个[]Block数组,若其Incise有值则继续向下遍历。

遍历代码如下:

func TraversingCubes(cubes []*blockCut.Block) {for _,cube:= range cubes{
        if cube.Inside==true {
            fmt.printf(cube)
        }else {
            cubes = cube.Incise
            TraversingCubes(cubes)
        }
    }
    return
}

原文地址:https://www.cnblogs.com/zheng123/p/9684809.html