网站大量收购闲置独家精品文档,联系QQ:2885784924

2007《数据结构》期末试卷_A_答案汇编.doc

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

一、(本题10分) (1)简述线性表的两种存储结构的主要优缺点及各自适用的场合。 (2)在折半查找和表插入排序中,记录分别应使用哪种存储结构,并用一句话简述理由。 答:(1)顺序存储是按索引(如数组下标)来存取数据元素,优点是可以实现快速的随机存取,缺点是插入与删除操作将引起元素移动,降低效率。对于链式存储,元素存储采取动态分配,利用率高。缺点是须增设指针域,存储数据元素不如顺序存储方便。优点是插入与删除操作简单,只须修改指针域。 (2)在折半查找中,记录使用顺序存储,可以快速实现中点的定位;在表插入排序中,记录使用静态链表,可以降少移动记录的操作。 二、(本题15分)在带头结点的非空线性链表中,试设计一算法,将链表中数据域值最小的那个结点移到链表的最前面,其余各结点的顺序保持不变。要求:不得额外申请新的链结点。 解:程序如下: typedef struct node { int data; struct node * next; }Node,*LinkList; void MinFirst(LinkList L) {Node *p,*q,*ptrmin; if(L-next == NULL) return; //空表 ptrmin = L; //ptrmin指向当前最小结点的前一个结点 p = L-next;//p指向当前结点的前一个结点 while(p-next!=NULL) { if( p-next-data ptrmin-next-data ) ptrmin = p; p = p-next; } //q指向最小结点,并从链表中删除 q = ptrmin-next; ptrmin-next = q-next; q-next = L-next; L-next = q; //q指向的最小结点插入到链表头 } 三、(本题15分)编写函数判断一棵二叉树是否不含有度为1的结点,若任何结点的度都不为1,则返回TRUE,否则返回FALSE。二叉树采用标准的二叉链表实现。注意:函数的代码要有注释。 解:结点与二叉树的数据结构如下: typedef struct BiTNode { TElemType data; struct BiTNode * lchild, * rchild; //左右孩子指针 } BiTNode, * BiTree; bool NoSingleBranchTree(BiTree T) { if( T==NULL) return true; if( T-lchild == NULL T-rchild !=NULL) return false; if( T-lchild != NULL T-rchild ==NULL) return false; return NoSingleBranchTree(T-lchild)NoSingleBranchTree(T-rchild); } 四、(本题15分)某带权有向图及其邻接表如下: (1)写出深度优先搜索结点访问序列;(邻接边的顺序按照邻接表链表顺序) (2)画出深度优先生成树; (3)将该图作为AOE网络,写出顶点C的最早发生时间及活动FC的最晚开始时间。 解: (1)深度优先搜索顺序是:A, B, C, E, G, D, F (2)深度优先生成树如下图所示。 (3)求解过程如下: ee(A)=0 ee(D)=3 ee(F)=ee(D)+3=6 ee(B)=1; ee(C)=max{ ee(A)+2 ,ee(B)+3, ee(F)+1}=7 ee(E)=max{ ee(B)+1, ee(C)+2 }=9 ee(G)=max{ ee(E)+1, ee(F)+5 }=11 le(G)=11 le(E)=le(G)-1=10 le(C)=le(E)-2=8 le(B)=min{le(E)-1,le(C)-3}=5 le(F)=min{ le(G)-5, le(C)-1 }=6 le(D)=le(F)-3=3 le(A)=min{ le(B)-1, le(C)-2, le(D)-3 } =0 则l(FC)=le(C)-1=7 所以,C的最早发生时间为7,活动FC的最晚开始时间为7。 五、(本题15分) (1)请画出往如下图的5阶B-树中插入一个关键字408后得到的B-树,以及再删除关键码180后得到的B-树; (2)包括n个关键字的m阶B-树在一次检索中最多涉及多少个结点?(要求写出推导过程) 解:(1)插入一个关键码408后得到的B-树 再删除关键码180后得到的B-树 (2)

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档