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
}

 


posted @ 2018-09-21 09:27  livalon1  阅读(1535)  评论(0编辑  收藏  举报