Tree(1)--树的基本概念

1.树的定义及术语

有根树(rooted tree):一棵有根树,简称为树T,他是n个结点的有限集合。当n=0时,T称为空树,否则T是非空树,记作
这里写图片描述
其中,r是T的一个特殊结点,称为根。T1,T2,T3…Tm是除了r之外的其他结点构成的互不相交的m(m>0)个子集,每个子集合也是一棵树,称为根的子树(subtree)。每课子树的根结点有且仅有一个直接前驱,但可以有0个或者多个直接后继结点。m称为r的分支数。
这里写图片描述

结点(node):它包含数据项及指向其他结点的分支。
结点的度:结点所拥有的子树的棵树。A的度为3,E的度为2,K、L、F、G、M、I、J的度为0。
叶子结点:度为0的结点{K,L,F,G,M,I,J}
分支结点(非终端结点):除叶子结点外的其他结点{A,B,C,D,E,H}
子女结点:若x有子树,子树的根结点即为x的子女。A有3个子女
父结点:若x有子树,x即为子女的父结点
兄弟结点(sibling): 同一父结点的子女互称兄弟
祖先结点(ancestor):从根结点到该结点所经分支上的所有结点,L的祖先为A,B,E
子孙结点(descendant):某一结点的子女以及这些子女的子女,B的子孙为E,F,K,L
结点所处的层次(level)/结点的深度:简称结点的层次,即从根到该结点所经路径上的分支条数。根结点在第一层,他的子女在第二层。任一结点的层次为它的父结点的层次加一
树的深度(depth):距离根结点最远的结点即为树的深度。空树的深度为0,只有一个根结点的树的深度为1,如图所示的树的深度为4
树的高度(height):数值等于树的深度
树的度(degree):结点的度的最大值,如图所示的树的度为3
有序树(ordered tree):结点的各个子树是有次序的
无序树:

2. ADT of Tree

template <class Type> class Tree {
public:
    Tree ( );              
    ~Tree ( );
    position Root ( );
    BuildRoot ( const Type& value );
    position FirstChild ( position p );
    position NextSibling ( position p);
    position Parent ( position p );
    Type Retrieve ( position p );    
    int InsertChild ( const position p,const Type &value );
    int DeleteChild ( position p, int i );
    void DeleteSubTree ( position t );
    int IsEmpty ( );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值