数据结构复习课概要1.ppt

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

3、访问线索二叉树 即:如何在线索二叉树中查找结点的前驱和后继。 (1)查找指定结点在中序线索二叉树中的直接后继; 若所找结点右标志rtag=1,则右孩子域指向中序后继,否则,中序后继应为遍历右子树时的第一个访问结点,即右子树中最左下的结点。 (2)查找指定结点在中序线索二叉树中的的直接前驱 若所找结点左标志ltag=1,则左孩子域指向中序前驱,否则,中序前驱应为遍历左子树时的最后一个访问结点,即左子树中最右下的结点。 (3) 查找指定点在前序线索二叉树中的直接后继 前序后继的查找比较方便,若P无右孩子,右链为后继,否则左孩子为后继。 (4) 查找指定结点在后序线索二叉树中的直接前驱 后序前驱的查找也比较方便,若左孩子为空,左链指前驱,若右孩子为空,左孩子指前驱,若左右孩子都不为空,则右孩子为前驱。 4、线索二叉树上的遍历 (1)前序遍历线索二叉树算法; (2)中序遍历线索二叉树算法。 十、堆 1、堆的定义 假设n个数据元素的关键码k0,k1,k2,...,kn-1,按完全二叉树的顺序存放在一个一维数组中, 如果当2i+1n时有: ki=k2i+1(i=0,1,...,(n-1)/2); 如果当2i+2n时有:ki=k2i+2(i=0,1,...,(n-1)/2); 则这样的数据元素集合称为最小堆。 如果当2i+1n时有: ki = k2i+1(i=0,1,...,(n-1)/2); 如果当2i+2n时有: ki = k2i+2(i=0,1,...,(n-1)/2); 则这样的数据元素集合称为最大堆。 2、堆的性质 (1)最小堆的根结点是堆中值最小的数据元素,最大堆的根结点是堆中值最大的数据元素,我们都把它们称为堆顶元素。 (2)对于最小堆,从根结点到每个叶结点的路径上,数据元素组成的序列都是非递减有序的。对于最大堆,从根结点到每个叶结点的路径上,数据元素组成的序列都是非递增有序的。 3、堆的应用 堆的一个应用是优先队列:在多道程序设计中,将优先权最高的进程出列,分配CPU运行。 堆的另一个应用是递增或递减排序。 堆结构的重要价值在于:在所有能直接访问一个表中的最大或最小数据元素的算法中,堆结构是时间效率最高的一种。 4、最小堆类 十一、哈夫曼树 1、哈夫曼树的定义 在一棵二叉树中,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。 2、哈夫曼树的构造 假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1,w2,…,wn,则哈夫曼树的构造规则为: (1) 将w1,w2,…,wn看成是有n 棵树的森林(每棵树仅有一个结点); (2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和; (3)从森林中删除选取的两棵树,并将新树加入森林; (4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为我们所求得的哈夫曼树。 3、哈夫曼编码 在哈夫曼树中,规定往左编码为0,往右编码为1,则得到叶子结点编码为从根结点到叶子结点中所有路径中0和1的顺序排列。 一、填空题 1、假定一棵树的广义表表示为A(B(E),C(F(H,I,J),G),D), 则该树的度为??????,树的深度为??????,终端结点的个数为??????。(空树的深度为0) 2、设F是一个森林,B是由F转换得到的二叉树,F中有n个非终端结点,则B中右指针域为空的结点有??????个。 3、对于一个具有n个结点的二叉树,当它为一棵??????二叉树时具有最小高度,即为??????,当它为一棵??????二叉树时,具有最大高度,即为??????。 4、在一棵二叉排序树上按??????遍历得到的结点序列是一个有序序列。 5、由三个结点构成的二叉树,共有??????种不同的结构。 3 4 6 n+1 完全 lb(n+1)-1 单支 n 中序 5 二、选择题 1、假定在一棵二叉树中,双分支结点数为15。单分支结点数为30,则叶结点数为??????个。 (A) 15 (B) 16 (C) 17 (D) 47 2、在一棵具有k层的满三叉树中,结点总数为??????。 (A) (3^k-1)/2 (B) 3^k-1 (C) (3^k-1)/3 (D) 3^k 3、如果F是由有序树T转换而来的二叉树,那么T中结点的前序就是F中结点的??????。 (A) 中序 (B) 前序 (C) 后序 (D)层序 4、欲实现任意二叉树的后序遍历的非递归算法而不必使用栈结构,最佳方案是二叉树采用??????存储结构。 (A)三

文档评论(0)

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

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

1亿VIP精品文档

相关文档