《数据结构》复习课.ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构》复习课.ppt

例2:在nxn(n=3)的稀疏矩阵A中,只有下标满足1in和n-i=j=n-i+2的元素A[i,j]不等于零,若这些非零元素按以行优先的顺序存入首地址为FIRST的一个连续的存储空间中,试写出任一非零元素A[i,j]的存储地址公式(西电1998年试题) 解:依题意可知这个矩阵的第一行和第n行的元素均为零,对满足2=i=n-1的各个行,除ai,n-i, ai,n-i+1, ai,n-i+2三个元素外,其它元素均为零。 若按以行优先顺序存放这些非零元素,对ai,j这个元素,其前面i-1行共有非零元素3(i-2)个,在非零的ai,j前,本行还有非零元素个数为j-(n-i)个,若第一个非零元素a2,n-2的地址为FIRST,则非零元素ai,j的地址为: LOC(ai,j)=FIRST+3x(i-2)+(i+j-n) 第五章 树和二叉树 学习要求: 理解树的定义和有关术语 熟悉树的基本操作、树的各种存储结构及其特点 理解二叉树的定义及有关术语 熟练掌握二叉树的性质、顺序存储和链式存储方式 熟练掌握二叉树的遍历算法及其执行过程,并且能够灵活应用 掌握二叉树的线索化过程及在中序线索化树上找给定结点的前驱和后继的方法 掌握树和森林与二叉树的转换关系 熟悉哈夫曼(Huffman)树及其应用 一、树的定义及有关术语 1、树的定义 树(Tree)是由n(n=0)个有限结点构成的集合。n=0的树称为空树(empty);对n0的树T有: (1)有一个特殊的结点称为根结点(root),根结点没有前驱结点; (2)当n1时,除根结点外其他结点被分成m(m0)个互不相交的子集T1,T2,…Tm。其中每个子集Ti(1=i=m)本身都是树,因此子集Ti称为树T的子树(subtree). 可见:树是递归定义的。 2、树的常用术语 结点(node)、结点的度(degree)、叶结点(leaf)、分支结点(internal)、孩子结点(children)、双亲结点(parent)、兄弟结点(sibling)、祖先结点(ancestor)、子孙结点(descendant)、树的度(degree)、结点的层次(或深度)(depth)、树的深度(depth)、森林(forest) 定理:结点为n的树必然有n-1条边,即有n-1个分支。 二、树的遍历 树的遍历操作是指按某种方式访问树中的每个结点且每一个结点只被访问一次。 树的遍历操作的算法主要有先根遍历和后根遍历。 1、先根遍历: 先访问根结点; 再按照从左到右的次序先根遍历根结点的每一棵子树。 2、后根遍历: 先访问结点的子结点(包括它们的子树); 再访问该结点; 最后访问根结点 三、树的存储结构和树类 1、父指针表示法 用一组连续的存储单元(数组)存储树中的所有结点,每个结点有两个域:一个是数据元素域,一个是指向其父结点的指针域。 并且一个数组可以存储任意多棵无关的树。数组内结点可能以任何顺序出现。 2、子结点表示法 按树的度(即树中所有结点度的最大值)设计结点的子结点指针个数。 3、父子结点表示法 在父指针表示法的基础上,给数组的每个结点增加一个指向该结点所有子结点链表的指针。 4、孩子兄弟结点表示法 一个结点有四个域:数据元素域,父结点域,左子结点域,右兄弟结点域。 四、二叉树的定义和性质 1、二叉树的定义 二叉树是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵不相交的左子树和右子树组成。 二叉树的特点是每个结点最多有两个孩子,或者说,在二叉树中,不存在度大于2的结点,并且二叉树是有序树(树为无序树),其子树的顺序不能颠倒。 2、二叉树的性质 性质1 若二叉树的层数从0开始,则一棵非空二叉树的第i层结点数,最多为2i个(i=0)。 性质2 若规定空树的深度为-1,则深度为k的二叉树最大结点数为2k+1-1(k= -1)。 性质3 对任意一棵二叉树,如果叶子结点个数为n0,度为2的结点个数为n2,则有n0=n2+1。 性质4 具有n个结点的完全二叉树深度k为不超过?log2(n+1)?-1 的最大整数。 性质5如果将一棵有n个结点的完全二叉树从上到下,从左到右对结点编号0,1,2,…,n,然后按此编号将该二叉树中各结点顺序地存放于一个一维数组中,对任意结点 i(0≤i≤n),则有如下结论成立: (1)若 i0,则序号为i的结点的双亲结点的序号为(i-1)/2(“/”表示整除),若i=0,则序号为i的结点为根结点,无双亲结点; (2)若2i+1n,则序号为i的结点的左子女为2i+1 ,若2i+1=n,则序号为i的结点无左子女。即结点为叶结点; (3)若2i+2n,则序号为i的结点的右子女为2i+2,若2i+2=n,则序号

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档