- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大学数据结构之树和二叉树课件
6.1 树的定义与基本术语 树的基本概念 树的图解表示法 树的相关术语 树的基本操作 树的基本概念 树的图解表示法 树的图解表示法 树的相关术语 结点:包含一个数据元素及若干指向其他结点的分支信息。 结点的度:一个结点的子树个数称为此结点的度。 叶节点:度为0的结点,即无后继的结点,也称为终端结点。 分支结点:度不为0的结点,也称为非终端结点。 结点的层次:从根结点开始定义,根结点的层次为1,根的直接后继的层次为2,依此类推。 结点的层序编号:将树中的结点按从上层到下层、同层从左到右的次序排成一个线性序列,依次给它们编以连续的自然数。 树的相关术语 树的度:树中所有结点的度的最大值。 树的高度(深度):树中所有结点的层次的最大值。 有序树:在树T中,如果各子树Ti之间是有先后次序的,则称为有序树。 森林:m(m=0)棵互不相交的树的集合。 同构:对两棵树,通过对结点适当地重命名,就可以使两棵树完全相等,则称这两棵树同构。 孩子结点:一个结点的直接后继称为该结点的孩子结点。 双亲结点:一个结点的直接前驱称为该结点的双亲结点。 树的相关术语 兄弟结点:同一双亲结点的孩子结点之间互称兄弟结点。 堂兄弟:父亲是兄弟关系或堂兄关系的结点称为堂兄弟结点。 祖先结点:一个结点的祖先结点是指从根结点到该结点的路径上的所有结点。 子孙结点:一个结点的直接后继和间接后继称为该结点的子孙结点。 前辈:层号比该结点小的结点,都称为该结点的前辈。 后辈:层号比该结点大的结点,都称为该结点的后辈。 树的相关术语 A、C、D的度各是多少? 这棵树的度是多少? 分支结点有哪些? 叶结点有哪些? B的孩子结点是谁? D是谁的双亲结点? B的子孙结点有哪些? L的祖先结点是谁? H的兄弟结点是谁? M的结点层数是多少? 这棵树的深度是多少? 树的基本操作 树的基本操作 树的基本操作 6.2 二叉树 二叉树的定义与基本操作 二叉树的性质 二叉树的存储结构 二叉树的定义与基本操作 定义:把满足以下两个条件的树型结构叫做二叉树(Binary Tree): 每个结点的度都不大于2; 每个结点的孩子结点次序不能任意颠倒。 例题:请分别画出三个结点的树和二叉树,试分析共有多少种不同画法? 二叉树的基本操作 二叉树的基本操作 二叉树的性质 性质1 在二叉树的第i层上至多有2i-1个结点(i=1)。 性质2 深度为k的二叉树至多有2k-1个结点(k=1)。 性质3 对任意一棵二叉树T,若终端结点数为n0,而其 度数为2的结点数为n2,则n0=n2+1。 满二叉树和完全二叉树 二叉树的基本性质 二叉树的存储结构 顺序存储结构 二叉树顺序存储的类型定义 #define N 50 /*定义二叉树结点个数的最大值*/ typedef char DataType; typedef struct stree{ DataType tree[N]; /*定义一维数组存放二叉树的结点*/ int count; /*定义二叉树的实际结点个数*/ }SeqTree; 二叉树的顺序存储结构 二叉树的链式存储结构 链式存储结构 练习:请画出下面这棵二叉树的链式存储结构图。 二叉链表结点结构的定义 typedef char DataType; typedef struct node{ DataType data; /*数据域*/ struct node *Lchild; /*左孩子结点指针域*/ struct node *Rchild; /*右孩子结点指针域*/ }BiNode,*BiTree; 二叉树的链式存储结构 typedef char DataType; typedef struct node{ DataType data; /*数据域*/ struct node *Parent; /*双亲节点指针域*/ struct node *Lchild; /*左孩子结点指针域*/ struct node *Rchild; /*右孩子结点指针域*/ }TriNode,*TriTree; 练习:请画出下面这棵二叉树的链式存储结构图(要求使用三叉链表结构)。 课堂练习 深度为5的二叉树最多有多少个结点?其中第3层有多少个结点? 如果一棵二叉树有5个度为1的结点,7个度为2的结点,问这棵二叉树共有多少个结点? 一棵有49个结点的完全二叉树,问: 这棵树的深度是多少? 编号为25的结点的左、右孩子结点的编号和双亲结点的编号分别是多少? 如右
文档评论(0)