书签 分享 收藏 举报 版权申诉 / 123
上传文档赚钱

类型第-六-章树与森林数据结构课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5167069
  • 上传时间:2023-02-15
  • 格式:PPT
  • 页数:123
  • 大小:469.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第-六-章树与森林数据结构课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    森林 数据结构 课件
    资源描述:

    1、D.S.两大类 1.线性(linear):表,栈,队列,字符串 2.非线性(non-linear):树,图 6.1 树 和 森 林 的 概 念1.树的定义:n个(n=0)结点组成的有限集合。(n=0,称为空树)若n0则 1)有一个根结点(root)。它只有直接后继,没有直接前驱 2)其余结点分成m(m=0)个互不相交的有限集合T0,T1,.,Tm-1,而每一个Ti,i=0,1,.,m-1又都是一棵树,称 为根的子树(Subtree)。以上定义是递归的。例如:(空树),O(root,含一个结点的树)BAHMDCIKFGLEJ0 层1层2层3层 树形结构有很多例子:书的目录,国家,大家庭等2.树的

    2、术语 1)结点的度(degree):指一个结点的子树个数,如D为3,B为2。2)树的度:树内各结点的度的最大值,上例为3。3)树叶(leaf):度为0的结点(即没有子树的结点),也称为终端结 点。4)分支结点(branch):度不为0的结点,又称为非终端结点。5)结点的层数(level):根的层数为0,其他结点的层数为它的父 母结点层数加1。6)树的深度(depth):树中结点所处的最大层次。空树的深度 为-1。7)有序树:如果在树形定义中,子树形T0,T1,.,Tm-1的相 对次序是有意义的。8)森林:m(m=0)棵互不相交的树的集合。例子:除根结点外,其余子树组成一个森林。其他一些术语:子

    3、女,双亲,兄弟,祖先。3.树的抽象数据类型 6.2 二 叉 树 (Binary Tree)1.二叉树的定义 结点的有限集合。1)或为空集 2)或由一个根及两棵不相交的称为左右子树的二叉树组成 以上定义是递归的。由该定义可得二叉树的五种基本形态:特点:*每个结点至多只有二棵子树(即度数=0)用归纳法证明:i=0时,只有一个根结点,20=1 设i=t时,结论成立,即有2t个结点;则当i=t+1时,因为二叉树每个结点的度数至多为2 所以t+1层最多有2t*2=2t+1个结点,性质成立2)深度为k的二叉树至多有2k+1-1个结点(k=-1)证:深度为的二叉树的最大结点数为 2i=20+21+-+2k=

    4、1*(1-2k+1)/(1-2)=2k+1-1 i=0k3)若叶子数=n0,度为2的结点数为n2个,则n0=n2+1证明:设度为1的结点数=n1,则总结点数n=n0+n1+n2 设分支数为B n=B+1,B=n-1,B=2*n2+n1,n0+n1+n2=2*n2+n1+1 所以n0=n2+1*满二叉树(Full Binary Tree)一棵高度k为且有2k+1-1个结点的二叉树 特点:每一层上的结点数都是最大结点数*完全二叉树(Complate Binary Tree)首先约定编号从根结点起,自上而下,自左而右,深度为k的有n个结点的完全二叉树,当且仅当其每一个结点与深度为k的满二叉树中编号从

    5、0n-1的结点一一对应。078103964512111213140783964512010396451214 完全二叉树 不是完全二叉树特点:叶结点仅在层次最大的两层出现 对任一结点,若其右子树的高度为l,则其左子树的高度 只能是l,l+1。4)具有n个结点的完全二叉树的高度为log2(n+1)-1设完全二叉树的高度为kk-1层则上面k-1层总共有2k-1个结点,而k层的结点个数=2k 所以 2k-1n=2k -1+2k=2k+1-1 所以2k n+1=2k+1klog2(n+1)0,则其双亲结点为|_(i-1)/2_|如果2*i+1n,则结点i的左子女为2*i+1 如果2*i+2n,则结点的

    6、右子女为2*i+2 如果i为偶数,且i0,则它的左兄弟为i-1 如果i为奇数,且in-1,则它的右兄弟为i+1 i结点的层次为|_log 2(i+1)_|3.二叉树的抽象数据类型 template class BinaryTree public:BinaryTree();/构造一棵空二叉树 BinaryTree(BinTreeNode*lch,BinTreeNode*rch,Type item);int IsEmpty();BinTreeNode*parent(BinTreeNode*);BinTreeNode*LeftChild(BinTreeNode*);BinTreeNode*Right

    7、Child(BinTreeNode);int Insert(const Type&item);int Find(const Type&item)const;Type GetData()const;const BinTreeNode*GetRoot()const;有两种表示方式:数组方式和链表方式。1.数组表示 数组表示主要用在完全二叉树上。317066179405231231 23 12 66 94 05 17 700 1 2 3 4 5 6 7根据性质5,上下,左右的关系都可以通过下标 i求出。对于一般的二叉树,要用数组表示,则必须把空缺的结点补上,变为完全二叉树。3170661788052

    8、31231 23 12 66 05 17 70 880 1 2 3 4 5 6 7 8 9 10 11 12 2.链表存储表示(也称L-R链式存储)因为每个结点最多只有二个孩子,所以设置两个指针leftchild,rightchild分别指向它的左、右孩子。每个结点 这种表示也称为二叉链表leftchild data rightchild为了便于查找任一结点的双亲结点,在结点中再加上指针域parent 称为三叉链表leftchild data parent rightchild返回总目录 root root A A B BC D C D E F E F G G 前序:ABDCEGFHI中序:D

    9、BAEGCHFI后序:DBGEHIFCAABCDEFIHGpcurrentp例如:ABCDEFGHJ 中根:DBAEGCHFJ 即若p的左链为空,即可填pre 若pre的右链为空,即可填p ppresrsrsrsrheap MaxHeapSiz 堆允许的元素个数 currentSize 堆中当前元素个数堆需要的成员数据template MinHeap:MinHeap(int maxSize)MaxHeapSize=DefaultSizemaxSize?maxSize:DefaultSize;heap=new TypeMaxHeapSize;currentSize=0;012345675317780945658723i=(n-2)/2 从i=3开始调,再对i=2开始调 再对i=1开始调,再对i=0开始调 *中根次序遍历 按中根遍历第一棵树的子树森林 访问F的第一棵树的根 按中根遍历其它树组成的森林 *后根次序遍历 按后根遍历第一棵树的子树森林 按后根遍历其它树组成的森林 访问F的第一棵树的根二叉树的先序 二叉树的中序二叉树的后序mj=1算法:利用Huffman算法,把10,29,4,8,15,7作为外部结点的权,构造具有最小带权外路径长度的扩充二叉树。把每个结点的左子女的边标上0,右子女标上1。这样从根到每个叶子的路径上的号码连接起来,就是外结点的字符编码。ATM S QSKS S

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第-六-章树与森林数据结构课件.ppt
    链接地址:https://www.163wenku.com/p-5167069.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库