1、树的概念自然界中的树树枝叶子树根计算机科学中的树分支结点叶子结点根结点结点树是n个(n0 )结点的有限集合,在任一棵非空树中:(1)有且仅有一个称为根的结点。(2)其余结点可分为m个互不相交的集合,而且这些集合中的每一集合本身又是一棵树,称为根的子树。树是递归结构,在树的定义中又用到了树的概念JIACB DHGFEK L M树的定义T1T3(1)T=A, B, C, D, E, F, G, H, I, J, K, L, M A 是根节点(2)除了根之外,其余结点可以划分为3个互不相交的集合:T1=B,,E,,F,K,L, T2=C, G , T3=D, H, I, J,M它们是A的子树(3)对
2、于T1,B是根,其余结点可以划分为2个互不相交的集合:T11=E,K,L,T12=F,T11,T12 是B 的子树。JIACB DHGFEK L MT2树结构特点:1)树中只有根结点没有前趋;2)除根外,其余结点都有且仅有一个前趋;3)树的结点,可以有零个或多个后继;4)除根外的其他结点,都存在唯一条从根到该结点的路径。JIACB DHGFE树的应用公司组织机构XiaoMiSales R&DManufacturingLaptops DesktopsCHINA InternationalEurope Asia Canada树的应用模块结构图树是常用的数据组织形式有些应用中数据 不存在分 结构 ,
3、 是为了 用数据, 用树的形式 组织。/ (root)binlibuseretcmathdssw yin tao xieStack.cppQueue.cppTree.cpp树的 1) 2) 组 3) 集合 4) ) 义 AEDHJIKLMFGCABEKLFCGDHMJI(A(B(E(K,L),F),C(G),D(H(M),I,J))B 子结点:结点的子树的根称为该结点的 子结点 结点: 结点是 结点的 子,结点是 结点的 结点:一 的 子结点currency1结点“ 从根到该结点的分 的有结点子fi结点:以fl结点为根的子树中任一结点都称为该结点的子fiJIACB DHGFEK L M树的概念
4、术语结点的 数:根结点的 数定义为0;fl结点的 数为n,其 子结点的 数为n1。树的 :树中的结点 数结点的 :结点子树的个数树的 : 树中的结点 子结点: 为0 的结点分结点: 不为0的结点有”树: 子树有”的树,:树 ”树: 不 子树的”:互不相交的树集合 树 的 是:一棵树根,其子树 构一个;一个 一个根结点为树。JIACB DHGFEK L M层数4树的深度4度为3叶子结点小测试?ABCDGE FIH 结点个数 树的高度 根结点 叶子结点 分支节点 H的祖先 B的后代 E的兄弟 A的右子树 树的度template class Tree public:Tree ( );Tree ( )
5、;position Root ( );BuildRoot ( const Type& value );position FirstChild ( position p );position NextSibling ( position p, position v);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 ( );