树和二叉树.ppt
《树和二叉树.ppt》由会员分享,可在线阅读,更多相关《树和二叉树.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、树和二叉树树和二叉树A只有根结点的树ABCDEFGHIJKLM有子树的树根6.1 树的定义和基本术语树的定义和基本术语在在自然科学自然科学,如地理学领域,水系、地貌(等高,如地理学领域,水系、地貌(等高线)、行政区划等都具有树结构关系;线)、行政区划等都具有树结构关系;在在社会人文社会人文领域,人类社会构成、组织机构等也领域,人类社会构成、组织机构等也具有树结构关系。具有树结构关系。n树的定义树的定义n定义:树定义:树(tree)是是n(n0)个结点的个结点的有限集有限集。在任一颗。在任一颗非空树中非空树中:n有且仅有一个特定的结点,称为树的有且仅有一个特定的结点,称为树的根根(root)n当
2、当n1时,其余结点可分为时,其余结点可分为m(m0)个个互不相交互不相交的有限集的有限集T1,T2,Tm,其中每一个集合本身又是一棵树,称为根的其中每一个集合本身又是一棵树,称为根的子子树树(subtree)n特点:特点:n树中至少有一个结点树中至少有一个结点根根n树中各子树是互不相交的集合树中各子树是互不相交的集合ABCDEFGHIJKLM有子树的树根子树n基本术语基本术语n结点结点(node)(node)表示树中的元素,包括一个数据元素表示树中的元素,包括一个数据元素及若干指向其子树的分支及若干指向其子树的分支n结点的度结点的度(degree)(degree)结点拥有的子树数结点拥有的子树
3、数n叶子叶子(leaf)(leaf)度为度为0 0的结点的结点n孩子孩子(child)(child)结点的子树的根称为该结点的孩子结点的子树的根称为该结点的孩子n双亲双亲(parent)(parent)孩子结点的上层结点孩子结点的上层结点n兄弟兄弟(sibling)(sibling)同一双亲的孩子同一双亲的孩子n祖先祖先从根到该结点所经分支上的所有结点从根到该结点所经分支上的所有结点n子孙子孙以某结点为根的子树中的任一结点都称为该以某结点为根的子树中的任一结点都称为该结点的子孙结点的子孙n基本术语基本术语n树的度树的度一棵树中最大的结点度数一棵树中最大的结点度数n结点的层次结点的层次(leve
4、l)(level)从根结点算起,根为第一层,从根结点算起,根为第一层,它的孩子为第二层它的孩子为第二层n深度深度(depth)(depth)树中结点的最大层次数树中结点的最大层次数n有序树与无序树:如果将树中结点的各子树看成从左有序树与无序树:如果将树中结点的各子树看成从左至右是有顺序的,即称为有序树;否则为无序树。至右是有顺序的,即称为有序树;否则为无序树。n森林森林(forest)m(m(forest)m(m 0)0)棵互不相交的树的集合棵互不相交的树的集合ABCDEFGHIJKLM结点A的度:结点B的度:结点M的度:叶子:结点A的孩子:结点B的孩子:结点I的双亲:结点L的双亲:结点B,C
5、,D为兄弟结点K,L为兄弟树的度:结点A的层次:结点M的层次:树的深度:结点F,G为堂兄弟结点A是结点F,G的祖先320B,C,DE,FK,L,F,G,M,I,J3DE414 设树设树T的度为的度为4,其中度为,其中度为1,2,3和和4的结点的结点个数分别为个数分别为4,2,1,1 则则T中的叶子数为中的叶子数为 A 5 B 6 C 7 D 8 答案:答案:D 抽象数据类型树的定义抽象数据类型树的定义n数据对象数据对象n数据关系数据关系n基本操作基本操作数据对象数据对象数据对象数据对象D:D是具有相同特性的数据元素是具有相同特性的数据元素的集合。的集合。数据关系数据关系数据关系数据关系R:若:
6、若D为空集,则称为为空集,则称为空树空树;若;若D仅含一个数据元素,则仅含一个数据元素,则R为空集,否则为空集,否则R=H,H是如下二元关系:是如下二元关系:(1)存在惟一的根的数据元素)存在惟一的根的数据元素(2)若)若D-root,则,则(3)对应于)对应于D-root 的划分的划分ABCDEFGHIJKLM有子树的树根D1D2D3基本操作基本操作InitTree(&T):构造空树构造空树T;DestroyTree(&T);CreateTree(&T,definition);/按按definition构造树构造树T。ClearTree(&T):将树将树T清为空树。清为空树。TreeEmpt
7、y(T):判断树的元素是否为空。判断树的元素是否为空。TreeDepth(T):返回树返回树T的深度。的深度。Root(T):返回返回T的根。的根。Value(T,Cur_e):返回返回Cur_e的值。的值。Assign(T,Cur_e,Value):结点结点Cur_e赋值为赋值为Value。Parent(T,Cur_e)LeftChild(T,Cur_e)RightSibling(T,Cur_e)InsertChild(&T,&P,i,c):插入插入c为为T中中P指结点的第指结点的第I棵子树。棵子树。DeleteChild(&T,&P,i):删除删除T中中p所指结点的第所指结点的第i棵子树。
8、棵子树。TraverseTree(T,Visit():遍历树的每一个结点,并调用遍历树的每一个结点,并调用Visit()函函数。数。6.2 二叉树二叉树1 定义定义n定义:定义:二叉树是另一种树结构,其每个结点二叉树是另一种树结构,其每个结点最多最多只有只有两颗子树,并且子树有两颗子树,并且子树有左右左右之分。之分。n特点特点n每个结点至多有二棵子树每个结点至多有二棵子树(即不存在度大于即不存在度大于2的结点的结点)n二叉树的子树有左、右之分,且其次序不能任意颠倒二叉树的子树有左、右之分,且其次序不能任意颠倒n基本形态基本形态A只有根结点的二叉树空二叉树AB右子树为空AB左子树为空ABC左、右
9、子树均非空抽象数据类型二叉树的定义抽象数据类型二叉树的定义n数据对象数据对象n数据关系数据关系n基本操作基本操作2 二叉树性质二叉树性质n性质性质1:证明:用归纳法证明之 i=1时,只有一个根结点,是对的 假设对所有j(1j=1的完全二叉树至少的完全二叉树至少有(有()个结点。)个结点。A 2k 1 B 2k-1 1 C 2k-1 D 2k 答案:答案:C 一棵完全二叉树上有一棵完全二叉树上有1001个结点,其个结点,其中叶子结点的个数是(中叶子结点的个数是()A 250 B 500 C 501 D 505 答案:答案:C 分析:分析:由二叉树结点的公式:由二叉树结点的公式:n=n0+n1+n
10、2=n0+n1+(n0-1)=2n0+n1-1,因为因为n=1001,所以所以1002=2n0+n1,在完全二叉树树中,在完全二叉树树中,n1只只能取能取0或或1,在本题中只能取在本题中只能取0,故,故n=501n性质性质5:如果对一棵有:如果对一棵有n个结点的个结点的完全二叉树完全二叉树的结点按层序编的结点按层序编号,则对任一结点号,则对任一结点i(1 i n),有:有:(1)如果如果i=1,则结点则结点i是二叉树的根,无双亲;如果是二叉树的根,无双亲;如果i1,则,则其双亲是其双亲是 i/2 (2)如果如果2in,则结点,则结点i无左孩子;如果无左孩子;如果2i n,则其左孩子是,则其左孩
11、子是2i (3)如果如果2i+1n,则结点,则结点i无右孩子;如果无右孩子;如果2i+1 n,则其右,则其右孩子是孩子是2i+1123114589126710 一棵完全二叉树共有一棵完全二叉树共有892个结点,试求个结点,试求(1)树的深度,()树的深度,(2)叶子结点数,)叶子结点数,(3)最后一个非终端结点的序号)最后一个非终端结点的序号 答案答案(1)10(2)446(3)446 3 二叉树的存储结构二叉树的存储结构n顺序存储结构顺序存储结构n实现:按满二叉树的结点层次编号,依次存放二叉树中的数实现:按满二叉树的结点层次编号,依次存放二叉树中的数据元素据元素n特点:特点:n结点间关系蕴含
12、在其存储位置中结点间关系蕴含在其存储位置中n浪费空间,适于存满二叉树和完全二叉树浪费空间,适于存满二叉树和完全二叉树abcdefga b c d e 0 0 0 0 f g 1 2 3 4 5 6 7 8 9 10 11n链式存储结构链式存储结构n二叉链表二叉链表typedef struct BiTNode TElemType data;struct BiTNode*lchild,*rchild;BiTNode,*BiTree;lchild data rchild lchild data rchild ABCDEFG在n个结点的二叉链表中,有n+1个空指针域 AB C D E F Gn三叉链表
13、三叉链表typedef struct node datatype data;struct node *lchild,*rchild,*parent;JD;lchild data parent rchildABCDEFG A B C D E F Gn方法方法n先序遍历:先访问先序遍历:先访问根结点根结点,然后分别先序遍历,然后分别先序遍历左子树左子树、右子右子树树n中序遍历:先中序遍历中序遍历:先中序遍历左子树左子树,然后访问,然后访问根结点根结点,最后遍历,最后遍历右子树右子树n后序遍历:先后序遍历后序遍历:先后序遍历左左、右右子树,然后访问子树,然后访问根结点根结点DLRLDR、LRD、DL
14、RRDL、RLD、DRL6.3 二叉树的遍历二叉树的遍历ADBCD L RAD L RD L RBDCD L R先序遍历序列:A B D C先序遍历:ADBCL D RBL D RL D RADCL D R中序遍历序列:B D A C中序遍历:ADBC L R DL R DL R DADCL R D后序遍历序列:D B C A后序遍历:B-*cab-*abc-*abc先序遍历示意图先序遍历示意图-*cab-*abc中序遍历示意图中序遍历示意图a*b-c-*cab-*abc后序遍历示意图后序遍历示意图ab*c-+/a*b-efcd先序遍历先序遍历:中序遍历:中序遍历:后序遍历:后序遍历:-+a*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二叉
限制150内