第6章 树和二叉树

      6.1 树的定义和基本术语

       树型结构是一种非常重要的非线性数据结构,其中以树和二叉树最为常用,直观来看,树是以分支关系定义的层次结构。树在计算机领域得到广泛应用,如在编译程序中,可用树型结构来表示源程序的语法结构。在数据库系统中,树型结构也是信息的重要组织形式之一。

       树是n(n >=0)个结点的有限集。

       在任意一棵非空树中:

1. 有且仅有一个特定的称为根(Root)的结点;

2. 当n > 1时,其余结点又可分为m个互不相交的有限集T1,T2……Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。

如下图的树:


       上图中右边a图是只有一个根结点的树,左边b图是具有13个结点的树其中A是根结点,其余结点分成3个互不相交的子集T1 = {B,E,F,K,L},T2 = {C,G},T3 = {D,H,I,J,M};这3个子集都是根A的树,且本身也是一棵树。

        例如T1,其本身也是一棵树,其根为B,其余结点分为2个互不相交的子集;T11 = {E,K,L}, T12 = {F},这两个都是B的子树;而T11中E是根,{K}和{L}是互不相交的子集,其本身又是只有一个根结点的树。


        树的结构定义是一个递归的定义,即在树的定义中又用到树的概念,它道出了树的固有特性。

树的其它表现形式,如下图。


图a是以嵌套集合(即是一些集合的集体,对于其中的任何两个集合,或者不相交,或者一个包含另外一个)的形式表示的;

图b是以广义表的形式表示的,根作为由子树森林组成的表的名字写在表的左边;

图c用的是凹入表示法(类似书的编目),从每个框的长度来区别层次等级,然后根据高层次等级下面的低层次等级知道这些低层次等级属于这个高层次等级。


        树结构中的一些基本术语:

       树的结点包含一个数据元素及其若干指向其子树的分支。结点拥有的子树称为结点的度(Degree)。如在图6.1中b图,A的度为3,C的度为1,F的度为0,度为0的结点称为叶子(Leaf)或终端结点。

       结点的层次从根开始定义起,根为第一层,根的孩子为第二层,依次向下类推,树中结点的最大层次称为树的深度(Degree)或高度,图6.1b中的树的深度为4.

如果将树的结点各子树看成从左到右是有次序的(即不能互换),则称该树为有序树,否则称为无序树,在有序中,左边第一个子树的根称为第一个孩子,最右边的称为最后一个孩子。

      森林是m个互不相交的树的集合。对树中每个结点而言,其子树的集合即为森林。由此,也可以森林和树递归的定义来描述树。

就逻辑结构而言,任何一棵树是一个二元组Tree = (root,F):其中root是数据元素,称作树的根结点;F是m棵树的森林,F = (T1,T2,...Tm),其中Ti = (ri,Fi)称作根root的第i棵子树,这个定义将有助于得到森林和树和二叉树之间转换的定义。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值