常用数据逻辑结构

集合——数据元素间除“同属于一个集合”外,无其它关系

线性结构——一个对一个,如线性表、栈、队列

树形结构——一个对多个,如树

图形结构——多个对多个,如图

 

树形结构特点:非线性结构,只有一个直接前驱,

但可能有多树形结构特点:非线性结构,只有一个直接前驱,

但可能有多个直接后继(1n)个直接后继(1n

 

树型结构(非线性结构):结点之间一对多关系 、具有层次关系

 

树型结构是一类非常重要的非线性结构。直观地,树型结构是以分支关系定义的层次结构。

 

树的定义   

(tree)是由n(n0)个结点组成的有限集合Tn=0的树称为空树;对n>0的树,有:

(1)仅有一个特殊的结点称为根(root)结点,根结点没有前驱结点;

(2)n>1时,除根结点外其余的结点分为m(m>0)个互不相交的有限集合T1,T2,…,Tm,其中每个集合Ti本身又是一棵树,称之为根的子树( subtree)。

注:树的定义具有递归性,即“树中还有树”;仅有一个根结点的树是最小树;

 

树的基本术语——从结构上分

结点(node):由数据元素和构造数据元素之间关系的指针组成

结点的度:结点所拥有的子树的个数

树的度:树中所有结点的度的最大值

叶结点:度为0的结点,也称作终端结点

分支结点:度不为0的结点,除叶结点之外的其余结点。

结点的层次:从根结点到树中某结点所经路径上的分支数

规定树中根结点的层次为1,其余结点的层次等于其双亲结点的层次加1。若某结点在第l(l1)层,则其子结点在第l+1层。

树的深度:树中所有结点的层次的最大值

森林:mm0)棵树的集合

 

树的基本术语——从关系上分

从根结点开始,到达某结点p所经过的所有结点成为结点p的层次路径(有且只有一条)

结点p的层次路径上的所有结点(p除外)称为p的祖先(ancester)

以某一结点为根的子树中的任意结点称为该结点的子孙结点(descent)

孩子(child)结点:树中一个结点的子树的根结点

双亲(parent)结点:若树中某结点有孩子结点,则这个结点就称作它的孩子结点的双亲结点

兄弟(sibling)结点:具有相同的双亲结点的结点

 

树的基本术语——从结构上分

无序树:树中任意一个结点的各孩子结点之间的次序构成    无关紧要的树

有序树:树中任意一个结点的各孩子结点有严格排列次序的树

 

树的表示形式

⑴  倒悬树。是最常用的表示形式。

⑵ 嵌套集合(文氏图)。是一些集合的集体,对于任何两个集合,或者不相交,或者一个集合包含另一个集合。

⑶ 广义表形式。

⑷  凹入法表示形式(凹入表)。

树的表示方法的多样化说明了树结构的重要性。

 

树的存储结构

定长结点的多重链表结构

不定长结点的多重链表结构

 

不定长的结点存贮法不便于操作。

定长结点存贮法浪费空间。

假设树有n个结点,树的度为k,那么,共有nk个链域,使用了 n-1个链域,浪费的链域数为 (nk n +1),浪费的比例= (nk n +1 ) / nk 趋向于1

结论:度为2的树最节省存贮空间。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值