Chapter8-1二叉树和树基本概念特性存储.pptVIP

Chapter8-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文档。上传文档
查看更多
数据结构与算法 Chapter8 二叉树和树 内容提要 8.1 树 8.2 二叉树 8.3 二叉树的特性 8.4 二叉树的描述(存储) 8.5 二叉树常用操作 8.6 二叉树遍历 8.7 抽象数据类型BinaryTree 8.8 类BinaryTree 8.9 抽象数据类型及类的扩充 8.10 应用 非线性结构 8.1 树(Tree) 树结构示例:模块划分 树结构示例:DNS 树的定义 树的基本术语 8.2 二叉树(Binary Tree) 8.3 二叉树的特性 课堂练习 满二叉树和完全二叉树 8.4 二叉树描述(存储结构) 二叉链表节点类(程序8-1) 8.5 二叉树基本操作 遍历:每个元素仅被访问一次,是基础操作! 确定其高度 确定其元素数目 复制 在屏幕或纸上显示二叉树 确定两棵二叉树是否一样 删除整棵树 若为数学表达式,计算该数学表达式 若为数学表达式树,给出对应的带括号的表达式 课后作业 1、二叉链表 节点结构 RightChild data LeftChild 8.4.2 链式存储表示(适用于一般二叉树) 链表表示 当二叉树采用二叉链表存储结构时,如果其节点的左孩子或右孩子不存在,则相应的指针域为空; 设置一个头指针,指向二叉树的根节点,它可以唯一地确定一棵二叉树。 例 A D B C E F A ^ B ^ C D ^ ^ E ^ ^ F ^ t 【思考】 有多少个指针域的值为0(NULL)? n+1? 在含有n个节点的二叉链表中有n+1个空指针域。 证明:n个节点共有指针域2n个 n个节点共有分支n-1个 所以,n个节点共有空指针域2n-(n-1)=n+1个 必须从根节点开始,每遍历一个节点就要进行判断,看它的左、右孩子是不是已知的节点。 【思考】 怎样在二叉链表中寻找某个节点的父节点? 2、三叉链表:便于查找父节点 节点结构 parent RightChild data LeftChild 链表表示 例 A D B C E F ^ A ^ B ^ C D ^ ^ E ^ ^ F ^ t template class T class BinaryTreeNode { friend void Visit(BinaryTreeNodeT *); friend void InOrder(BinaryTreeNodeT *); friend void PreOrder(BinaryTreeNodeT *); friend void PostOrder(BinaryTreeNodeT *); friend void LevelOrder(BinaryTreeNodeT *); friend void main(void); public: BinaryTreeNode( ) {LeftChild = RightChild = 0;} BinaryTreeNode(const T e) { data = e; LeftChild = RightChild = 0; } BinaryTreeNode(const T e, BinaryTreeNode *l, BinaryTreeNode *r) { data = e; LeftChild = l; RightChild = r; } private: T data; BinaryTreeNodeT *LeftChild, // left subtree *RightChild; // right subtree }; 2010年秋季 非线性结构是指在结构中至少存在一个数据元素,它具有两个或两个以上的直接前驱或直接后继。 树、二叉树:一对多 图、网络:多对多 2 1 14 13 12 11 2 3 4 6 7 8 9 10 5 5 1 2 5 6 4 3 1 2 5 4 3 6 11 33 18 14 6 6 5 19 21 例 客观世界中的树形结构: 人类社会的家谱、族谱; 各种组织机构的表示; 计算机领域: 编译程序的语法结构; 数据库系统中的信息组织; 磁盘文件的目录; 软件工程中的模块划分。 祖父 伯父 父亲 叔父 堂兄 你 堂姐 堂弟 侄儿 命名语法: 主机名.单位名.类型名.国家代码 例如: 以树型结构实现

文档评论(0)

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

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

1亿VIP精品文档

相关文档