- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
树和叉树的存储结构课件
树和线性结构对照 二叉树 二叉树的定义 是n(n=0)个结点的有限集,其子树分为互不相交的两个集合,分别称为左子树和右子树,左子树和右子树也是二叉树。 二叉树不是树的特例。 特点 每个结点至多有二棵子树(即不存在度大于2的结点); 二叉树的子树有左、右之分,且其次序不能任意颠倒。 基本形态 几种特殊形式的二叉树 满二叉树 深度为k且有2k-1个结点的二叉树。 特点 每一层上的结点数都是最大结点数; 所有的分支结点的度数都为2; 叶子结点都在同一层次上。 几种特殊形式的二叉树 完全二叉树 若对满二叉树的结点从上到下从左至右进行编号,则深度为k且有n个结点的二叉树称为完全二叉树,当且仅当其每一个结点都与深度为k的满二叉树的编号从1到n一一对应时。 特点 叶子结点只可能在层次最大的两层上出现; 前k-1层中的结点都是“满”的,且第 k 层的结点都集中在左边。 判断是否为完全二叉树,说明理由。 二叉树的性质 性质1:在二叉树的第 i 层至多有 2i-1 个结点 ( i?1)。 性质2:深度为 k 的二叉树至多有 2k-1 个结点。 性质3:对于任何一棵二叉树T,若其终端结点(叶子)数为 n0 ,度为1的结点数为n1,度为2的结点数n2, 则n0= n2+1。 性质4:具有n个结点的完全二叉树的深度是?log2n?+1。 性质5:如果对一棵有n个结点的完全二叉树的结点按层序 编号,则对任一结点i(1?i?n),有: 如果i=1,则结点i是二叉树的根,无双亲;如果i1,则其双亲是?i/2?; 如果2in,则结点i无左孩子;如果2i?n,则其左孩子是2i; 如果2i+1n,则结点i无右孩子;如果2i+1?n,则其右孩子是2i+1。 二叉树的存储结构 顺序存储结构 用一组地址连续的存储单元存储二叉树中的数据元素。 完全二叉树,只要从根起按层序存储即可。将完全二叉树上编号为 i 的结点元素存储在一维数组中下标为 i-1 的分量中。 一般的二叉树,可对照完全二叉树的编号进行相应的存储,但在没有结点的分量中需填充空白字符(例如填充0)。 顺序存储表示#define MAX_TREE_SIZE 100 //最大结点数Typedef TElemType SqBiTree[MAX_TREE_SIZE]; //0号根结点SqBiTree bt; 深度为4,有12个结点的完全二叉树的顺序存储 深度为4,有7个结点的一般二叉树的顺序存储 深度为4,只有4个右孩子的二叉树的顺序存储 顺序存储结构适用于满二叉树和完全二叉树的存储。 链式存储结构 二叉链表 结点除包括元素自身的信息外,还包括指向其左、右子树的指针。即结点要包括数据域,左子树指针域和右子树指针域。 三叉链表 结点包括数据域,左子树指针域、双亲域和右子树指针域。 100 865 10 树和二叉树 线性结构 树结构 存在唯一的没有前驱 的首元素 存在唯一的没有前驱的 根结点 存在唯一的没有后继 的尾元素 存在多个没有后继的 叶子 其余元素均存在唯一 的前驱元素和唯一 的后继元素 其余结点均存在唯一的 前驱(双亲)结点和多 个后继(孩子)结点 A B C D E I J G H 根结点 左子树 右子树 A ? A B A B A B C 空二叉树 只有根结点 的二叉树 右子树为空 左子树为空 左、右子树 均非空 斜树 1 .所有结点都只有左子树的二叉树称为左斜树; 2 .所有结点都只有右子树的二叉树称为右斜树; 3.左斜树和右斜树统称为斜树。 1. 在斜树中,每一层只有一个结点; 2.斜树的结点个数与其深度相同。 几种特殊形式的二叉树 斜树的特点: A B C A B C 1 2 3 11 4 5 8 9 12 13 6 7 10 14 15 1 2 3 11 4 5 8 9 12 6 7 10 1 2 3 4 5 6 7 1 2 3 4 5 6 思考:满二叉树与完全二叉树的关系? 在满二叉树中,从最后一个结点开始,连续去掉任意多个结点,即是一棵完全二叉树。 A 1 5 2 3 4 6 7 9 10 B C D E F G H I J K 11 L 12 M 13 N 14 O 15 8 A 1 5 2 3 4 6 7 8 9 10 B C D E F G H I J 不是完全二叉树,结点10与满二叉树中的结点10不是同一个结点 F B A G E D C H I J K L 例如: bt[3]的双亲为└3/2┘=1,即在bt[1]中; 其左孩子在bt[2i]=bt[6]中; 其右孩子在bt[2i+1]=bt[7]中。 如何反映结点之 间的逻辑关系?
文档评论(0)