go之树型结构深度理解

go之树型结构深度理解

如果你是一个编程人员,或多或少对树型结构都有一定的认识,我个人对树型数据结构是又爱又恨。这篇文章主要讲解一些关于tree的数据结构以及使用。

什么是树?

数组列表队列队列堆栈都是以一个集合的形式存储数据,一般称它们被称为 "线性"存储结构。但当涉及到树(trees)和图(graphs)时,事情就会变得混乱,因为数据不是以线性方式存储的。

被称为非线性数据结构。事实上,你也可以说树是分层数据结构,因为数据是以分层的方式存储的。

后面为了讲解方便统一叫tree

tree是由节点或顶点和边组成的数据结构,没有节点的树被称为空树,非空树由一个根节点和许多层级的附加节点组成,是一个具有层次的结构。

下面通过一个例子来看一下什么是 tree

go之树型结构深度理解_第1张图片

上面图中的数据结构是一个节点的组合,从A到F这些圆圈称为节点,有6个边(edge)。虽然它的所有元素看起来都像构造了一棵树,但节点A、D、E、F形成了一个闭环,所以这个结构不是一个有效的树。

如果我们打破F和E之间的连接,并在F和G之间添加一个新的节点,叫做G的边缘。

div

你可能感兴趣的:(golang的大师之路)