数据结构第六章树和二叉树.pptxVIP

  1. 1、本文档共123页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 树和二叉树;6.1 树的类型定义;6.1 树的类型定义;数据对象 D:;A;基 本 术 语;结点:;(从根到结点的)路径:;任何一棵非空树是一个二元组 Tree = (root,F) 其中:root 被称为根结点, F 被称为子树森林;(1) 有确定的根; (2) 树根和子树根之间为有向关系。;对比树型结构和线性结构的结构特点;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;6.2 二叉树的类型定义 ;;二叉树的五种基本形态:;二叉树 的重要特性; 性质 1 : 在二叉树的第 i 层上至多有2i-1 个结点。 (i≥1);性质 2 : 深度为 k 的二叉树上至多含 2k-1 个结点(k≥1); 性质 3 : 对任何一棵二叉树,若它含有n0 个叶子结点、n2 个度为 2 的结点,则必存在关系式:n0 = n2+1;两类特殊的二叉树:; 性质 4 : 具有 n 个结点的完全二叉树的深度为 ? log2n? +1;性质 5 :;6.3 二叉树的存储结构;#define MAX_TREE_SIZE 100 // 二叉树的最大结点数 typedef TElemType SqBiTree[MAX_TREE_SIZE]; // 0号单元存储根结点 SqBiTree bt;;例如:;二、二叉树的链式存储表示;A;typedef struct BiTNode { // 结点结构 TElemType data; struct BiTNode *lchild, *rchild; // 左右孩子指针 } BiTNode, *BiTree;;; typedef struct TriTNode { // 结点结构 TElemType data; struct TriTNode *lchild, *rchild; // 左右孩子指针 struct TriTNode *parent; //双亲指针 } TriTNode, *TriTree;;结点结构:; typedef struct BPTNode { // 结点结构 TElemType data; int *parent; // 指向双亲的指针 char LRTag; // 左、右孩子标志域 } BPTNode typedef struct BPTree{ // 树结构 BPTNode nodes[MAX_TREE_SIZE]; int num_node; // 结点数目 int root; // 根结点的位置 } BPTree; 二叉树的主要基本操作:;(5)DeleteL(bt,Parent)在二叉树bt中删除结点Parent的左子树 (6) DeleteR(bt,Parent)在二叉树bt中删除结点Parent的右子树 (7)Search(bt,x)在二叉树bt中查找数据元素x (8)Traverse(bt)按某种方式遍历二叉树; 实现算法;(2)Create(x,lbt,rbt) BiTree Create(x,lbt,rbt) { BiTree p; if((bt =(BiTree)malloc(sizeof(BiTNode)) ==NULL) return NULL; p-data = x; p-lchild=lbt; p-rchild=rbt; return p; } ;(3)InsertL(x, Parent) BiTree InsertL(x, Parent) { BiTree p; if(Parent==NULL) return NULL; if((bt =(BiTree)malloc(sizeof(BiTNode)) ==NULL) return NULL; p-data = x; p-lchild=NULL; p-rchild=NULL; if( Parent-lchild==NUL

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档