1树结构的定义和基本操作6
3遍历二叉树6
4树和森林6
5树的应用习题前面谈的基本上是线性表结构,线性表,栈、队列、串、一维数组,即使二维数组(矩阵结构、十字类别)也不过只是线性表的组合,即:除首元素和尾元素以外,每一个元素有唯一的前驱和后续元素
树形结构是一种重要的非线性结构,讨论的是层次和分支关系,即:除了有一个根元素没有前驱以外,每一个元素都有唯一的前驱元素;另外,每一个元素有零个或多个后继元素
例如,人类社会的族谱和各种社会组织机构都可以用树来形象表示
树在计算机领域中也得到广泛应用
1树结构的定义和基本操作6
1树的定义递归定义:树(tree)是n(n>0)个结点的有限集
在任意一棵树中:(1)有且只有一个特定的称为根(root)的结点
(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合本身又是一棵树,称为子树(subtree)
1所示,在图中的树有13个结点,A是树根,其余结点构成三个互不相交的子集:T1={B,E,F,K,L},T2={C,G},T3={D,H,I,J,M};T1,T2和T3都是根A的子树,且它们本身也是一棵树
如在T1中,B是该子树根,其余结点又构成两个互不相交子集,T11={E,K,L}和T12={F},T11和T12都是根B的子树,且它们本身也是一棵树
1树的示例上面是树的一个递归定义,树除了该递归定义外,还有其它定义
2所示为图6
1中树的各种表示
1的示例可以看出,树有两个特点:(1)树的根结点没有前驱结点,其余结点有且只有一个前驱结点
(2)树结点可以有零个或多个后继结点
树结构描述的是层次和分支关系
2树的其它三种表示方法图6
2(a)是以嵌套集合的形式表示(任何两个集合,或不相交,或一个包含另一个);图6