1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 Chapter Six Tree 1、树和森林的概念 概念 二叉树 (Binary Tree) 二叉树的表示 二叉树遍历 (Binary Tree Traversal) 线索化二叉树 (Threaded Binary Tree) 堆 ( Heap ) 树与森林 (Tree Forest) 二叉树的计数 霍夫曼树 (Huffman Tree) 1、树和森林的概念 树的定义 树是由n (n ? 0)个结点组成的有限集合。如果n = 0,称为空树;如果n 0,则 ? 有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱; ? 除根以外的其它结点划分为m (m ? 0)个互不相交的有限集合T0, T1, …, Tm-1,每个集合又是一棵树,并且称之为根的子树(subTree)。每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继。 1、树和森林的概念 树的特点 (1) 树的根结点没有前驱结点,除根结点之外的所有结点 有且只有一个前驱结点。 (2) 树中所有结点可以有零个或多个后继结点。 1、树和森林的概念 结点(node) 结点的度(degree) 分支(branch)结点 叶(leaf)结点 子女(child)结点 双亲(parent)结点 1、树和森林的概念 树的定义还可形式化的描述为二元组的形式: T=(D,R) 其中:D为树T中结点的集合,R为树中结点之间关系的集合。 1、树和森林的概念 树和线性结构的对比 2、二叉树 (Binary Tree) 2.1、二叉树概念 2.2、二叉树的表示 2.3、二叉树遍历 (Binary Tree Traversal) 2.4、线索化二叉树 (Threaded Binary Tree) 2.5、堆 ( Heap ) 2.6、树与森林 (Tree Forest) 2.7、二叉树的计数 2.8、霍夫曼树 (Huffman Tree) 2.1、二叉树概念 定义 2.1、二叉树概念 5种形态 2.1、二叉树概念 N个节点有多少种形态? 2.1、二叉树概念 N个节点有多少种形态? 2.1、二叉树概念 两类特殊的二叉树: 2.1、二叉树概念 两类特殊的二叉树: 2.1、二叉树概念 特殊二叉树的练习: 2.1、二叉树概念 二叉树的性质 2.1、二叉树概念 二叉树的性质 2.1、二叉树概念 二叉树的性质 2.1、二叉树概念 二叉树的性质 2.1、二叉树概念 二叉树的性质 2.2、二叉树的存储 存储结构 2.2.1、二叉树的顺序存储 定义 2.2.1、二叉树的顺序存储 相关分析 2.2.1、二叉树的顺序存储 相关分析 2.2.1、二叉树的顺序存储 数据结构 2.2.2、二叉树的链式存储 链式存储结构: 2.2.2、二叉树的链式存储 二叉链表节点结构: 2.2.2、二叉树的链式存储 二叉链表链接结构: 2.2.2、二叉树的链式存储 三叉链表节点结构: 2.2.2、二叉树的链式存储 三叉链表链接结构: 2.2.2、二叉树的链式存储 静态结构: 2.3、二叉树的操作及实现 2.3.1、基本操作 2.3.1、二叉树的基本操作(BinaryTree.cpp) Initiate(bt) Create(x,lbt,rbt) InsertL(bt,x,parent) InsertR(bt,x,parent) DeleteL(bt,parent) DeleteR(bt,parent) 2.3.1、二叉树的基本操作 (1) Initiate(bt) : 建立一棵空二叉树 2.3.1、二叉树的基本操作 (3) InsertL(bt,x,parent): 将数据域信息为x的结点插入到二叉树bt中作为 结点parent的左孩子结点。如果结点parent原来 有左孩子结点,则将结点parent原来的左孩子结 点作为结点x的左孩子结点。 2.3.1、二叉树的基本操作 (5) DeleteL(bt,parent): 在二叉树bt中删除结点parent的左子树。 (6) DeleteR(bt,parent): 在二叉树bt中删除结点parent的右子树。 (7) Search(bt,x): 在二叉树bt中查找数据元素x。 (8) Traverse(bt): 按某种方式遍历二叉树bt的全部结点。 2.3.2、二叉树的遍历实现 遍历定义 (Binary Tree Traversal) 2.3.2、二叉树的遍历实现 先序遍历 (Preorder Traversal) 2.3.2、二叉树的遍历实现 中序遍历 (Inorder Traversal) 2.3.2、二叉树的遍

文档评论(0)

dd545454 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档