数据结构试卷与解析.docVIP

  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文档。上传文档
查看更多
数据结构试卷与解析

《数据结构》试题参考答案 (开卷) (电信系本科2001级 2002年12月) 一、回答下列问题 (每题4分,共36分) 1. 某完全二叉树共有15381个结点,请问其树叶有多少个? 答:n2=?n/2?=?15381/2?=7691(个) 2. 假设有二维数组A7×9,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,末尾元素A[6][8]的第一个字节地址为多少?若按列存储时,元素A[4][7]的第一个字节地址为多少? 答:① 末尾元素A[6][8]的第一个字节地址=1000+(7行×9列—1)×6B=1000+62×6=1372 ②按列存储时,元素A[4][7]的第一个字节地址=1000+(7列×7行+4)×6B=1000+53×6=1318 3. 在KMP算法中,已知模式串为ADABBADADA ,请写出模式串的next[j]函数值。 答:根据 0 当j=1时 next[ j ]= max { k |1kj 且‘T1…Tk-1’=‘Tj-(k-1) …Tj-1’ } 1 其他情况 对应模式串的next[ j ]= 演示程序亦验证了结果: next[j]=0112112343 4. 已知一棵二叉树的前序序列和中序序列分别为:ABDEGCFH和DBGEACHF,则该二叉树的后序序列是什么? 答:法1:先画树而得后序序列; A (DBGE) (CHF) B C 结论:D G E B H F C A D (GE) (HF) E F G H 法2:直接推出后序序列 step1: (DBGE) (CHF) A step2: D(GE)B (HF) C A step3: DGEB HF C A 5. 请证明:用二叉链表法(Lchild-Rchild)存储包含n个结点的二叉树,必有n+1个指针域为空。 答:因为:用二叉链表存储包含n个结点的二叉树,结点共有2n个链域; 又因为:二叉树中除根结点外,每一个结点有且仅有一个双亲,这就意味着只有n-1个结点的链域存放指向非空子女结点的指针(换句话说,有后继孩子链接的指针仅n-1个); 所以,空指针数目=全部指针数2n-所有非空指针数(n-1)=所有空指针数=n+1,证毕。 6. 设二叉排序树中关键字互不相同,则其中最小元素必无左孩子,最大元素必无右孩子。此命题是否正确?最大元素和最小元素一定是叶子吗?一个新的结点总是插在二叉排序树的某叶子上吗? 请解释理由。 答: 设二叉排序树中关键字互不相同,则其中最小元必无左孩子,最大元必无右孩子。此命题正确。 解释:假设最小元为min,若最小元min有左孩子min’,根据二叉排序树的定义应该有:min’ min,与min是最小元矛盾,由此可反证出最小元必无左孩子;同理可反证出最大元必无右孩子。 最大元和最小元不一定是叶子; 解释:虽然最小元必无左孩子,最大元必无右孩子,但最小元可有右孩子,最大元可有左孩子。如下图A和B所示。所以最大元和最小元不一定是叶子。 ③ 一个新的结点不一定总是插在二叉排序树的某叶子上。 解释:例如给定关键字{A,B,C},以B、A、C的次序插入一空的二叉排序树中,过程如下图C所示。当再插入C时,C作为B的右孩子,插入后如图D所示,但此时B已有左孩子A,元矛盾,由此可反证出最小元必无左孩子;同理可反证出最大元必无右孩子。 7. 假设一有序表中有23个元素,现进行折半查找,则平均查找长度是多少? 答:显然,平均查找长度=O(log2n)5次(25)。但具体是多少次,则不能按照公式 来计算(即24/23(log224)-1≈3.785次并不正确!)。 因为这是在假设n=2m-1的情况下推导出来的公式。应当用穷举法罗列: 全部元素的查找次数为=(1+2×2+4×3+8×4+8×5)=89; ASL=89/23=3.87 8. 已知输入序列的入栈次序为X、Y、Z,请列出出栈的所有可能序列。 答: 共5种可能的序列。 (1) X、Y、Z 全入 Z、Y、X 出栈 (2) X、Y 先入栈 Y、X、 Z 出栈 Y、Z、X出栈 (3) X 先入栈 X、Y、Z出栈 X、Z、Y出栈 9. 若

文档评论(0)

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

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

1亿VIP精品文档

相关文档