作者Allen,专注C/C++/IoT/算法等技术分享,技术交流群添加微信号:CoderAllen,回复关键字即可
之前的数据结构都是一对一的线性结构,而树是一对多的数据结构
树的定义:
树是有n个结点的有限集,n=0时称为空树
在任何一棵非空树中,有且仅有一个特定的称为根的结点
当n>1时,其余结点可分为m个互不相交的有限集,其中每一个集合本身又是一棵树,并且称为根的子树,如下图
树的定义其实就是之前提到的栈的递归的方法,就是树的定义的之后还用到了树
如下图,子树T1和子树T2就是结点A的子树,D/G/H/I组成的树又是B为结点的子树,E/J组成的树是C为结点的子树
树的定义中有两点需要注意:
1.n>0的时候根结点是唯一的,不可能存在多个根结点
2.m>0时,子树的个数没有限制,但他们一定是互不相交的