【5-1】树与二叉树的基本概念、性质与存储分解.pptVIP

【5-1】树与二叉树的基本概念、性质与存储分解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 完全二叉树的两个性质 性质5:具有n个节点的完全二叉树的深度h为 证明:根据二叉树的特性3,可得0n≤2h-1, 根据完全二叉树的定义,可得n2h-1-1 所以 2h-1-1n≤2h-1 又因为h为整数,所以h≥ 则hmin= 23-1 24-1 * 由性质5可得: 包含n个元素的二叉树的高度最大为n,最小 。 理想平衡二叉树 * 性质6:如果将一棵有n个节点的完全二叉树自顶向下,同一层自左向右连续给节点编号1,2,…,n。设该完全二叉树中一元素的序号为i,1≤i≤n。则有下列关系成立: (2)当2in时,该元素无左孩子。否则,其左孩子的编号为2i; (3)若2i+1n,该元素无右孩子。否则,其右孩子的编号为2i+1。 (1)若i=1,则节点i为根,无双亲;若i1,则节点i的双亲节点编号为 ; A B D G C F E I H J 1 2 3 4 5 6 7 8 9 10 * (4)若 i 为奇数, 且i != 1, 则其左兄弟为 i-1 (5)若 i 为偶数, 且i != n, 则其右兄弟为 i+1 (6)结点 i 所在层次为 1 2 3 4 8 5 6 7 9 10 * 2.二叉树的ADT template class T class BinaryTree { public: BinaryTree (); //构造函数 BinaryTree (BinTreeNodeT *lch, BinTreeNodeT *rch, T item); //构造函数, 以item为根, lch和rch为左、右子树 //构造一棵二叉树 int Height (); //求树深度或高度 int Size (); //求树中结点个数 * 二叉树的ADT(续1) bool IsEmpty (); //判二叉树空否? BinTreeNodeT *Parent (BinTreeNodeT *t); //求结点 t 的双亲 BinTreeNodeT *LeftChild (BinTreeNodeT *t); //求结点 t 的左子女 BinTreeNodeT *RightChild (BinTreeNodeT *t); //求结点 t 的右子女 bool Insert (T item); //在树中插入新元素 bool Remove (T item); //在树中删除元素 bool Find (T item); //判断item是否在树中 bool getData (T item); //取得结点数据 * 二叉树的ADT(续2) BinTreeNodeT *getRoot (); //取根 void preOrder (void (*visit) (BinTreeNodeT *t)); //前序遍历, visit是访问函数 void inOrder (void (*visit) (BinTreeNodeT *t)); //中序遍历, visit是访问函数 void postOrder (void (*visit) (BinTreeNodeT *t)); //后序遍历, (*visit)是访问函数 void levelOrder (void (*visit)(BinTreeNodeT *t)); //层次遍历, visit是访问函数 }; * 5.3 二叉树的存储表示 二叉树的存储结构 顺序存储方式:数组方式 链式存储方式:链表方式 适用情况 顺序存储:二叉树的大小和形态在数据处理过程中,不发生剧烈、动态的变化 链式存储:与之相反的情况 * 1. 顺序存储方式 用一组连续的存储单元来存放二叉树中的数据元素(借用一维数组来描述)。 一个有n个节点的二叉树,可以把它的节点顺序存入一维数组bt[n]中,其中编号为i的节点存入bt[i]中。 根据完全二叉树的特性6,节点在一维数组中的相对位置,即数组下标反映了完全二叉树节点之间的逻辑关系。 * 完全二叉树的顺序存储 A B D G C F E I H J 1 2 3 4 5 6 7 8 9 10 A B C D E F G H I J 0 1 2 3 4 5 6 7 8 9 10 数组下标 * 一般二叉树的顺序存储 1 2 3 4 5 6 7 8 9 10 11 12

文档评论(0)

119220 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档