(完整word版)暨南大学计算机830数据结构2018年真题
计算机三级数据库技术模拟题2018年(1)_真题-无答案

计算机三级数据库技术模拟题2018年(1)(总分100,考试时间90分钟)1. 在文件IN.DAT中有200组数据,每组有3个数,每个数均是3位数。
函数readDat()的功能是读取这200组数据,存放到结构数组aa中。
请编写函数jsSort(),返回满足此条件的数的个数。
其函数的功能是:在200组数据中找出满足每组数据中的第二个数大于第一个数加第三个数之和这个条件的数,并把这些数存入结构数组bb中,再对结构数组bb中的数据按照每组数据的第二个数加第三个数之和的大小顺序进行降序排列,排序后的结果仍重新存入结构数组bb中。
最后调用函数writeDat(),把结果bb输出到文件OUT.DA T中。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
[试题程序]#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct{int x1, x2, x3;}Data;Data aa[200], bb[200];void readDat();void writeDat();int jsSort() //返回满足条件的数的个数{}void main(){int count;readDat();count=jsSort();writeDat(count);}void readDat(){FILE*in;int i;in=fopen("IN.DAT", "r");for(i=0; i<200; i++)fscanf(in, "%d%d%d", &aa[i].x1, &aa[i].x2, &aa[i].x3);fclose(in);}void writeDat(int count){FILE*out;int i;out=fopen("OUT.DAT", "w");system("CLS");for(i=0; i<count; i++){printf("%d, %d, %d第二个数+第三个数=%d\n", bb[i].x1, bb[i].x2, bb[i].x3, bbi].x2+bb[i].x3); fprintf(out, "%d, %d, %d\n", bb[i].x1, bb[i].x2, bb[i].x3);}fclose(out);}。
数据结构_习题集(含答案)

数据结构_习题集(含答案)《数据结构》课程习题集一、单选题1.头结点为L的单循环链表为空的条件是()A、L==NULLB、L->next==NULLC、L->next==LD、L!==NULL2.与线性表的链式存储结构特点不符的是:()A、便于插入、删除运算B、查找操作费时C、需要连续的地址空间D、空间动态分配3.采用邻接表存储的图,其深度优先遍历算法类似于二叉树的()A、先序遍历B、中序遍历C、后序遍历D、按层遍历4.对序列{1,5,7,10,12,15,19},采用折半查找1,需比较()次。
A、1B、2C、3D、45.直接选择排序算法的时间复杂度为()A、O(n)B、O(n2)C、 O(n*log(n))D、 O(1)6.一个栈的入栈序列为1、2、3、4,则栈的不可能的输出序列是()A、1 2 3 4B、4 3 2 1C、4 1 2 3D、3 4 2 17.判定一个顺序栈S为空的条件为()。
A、S.top=0B、S.base=0C、S.top=S.baseD、S.top>S.stacksize8.设有两个串r和t,求r在t中首次出现位置的运算称作()A、求串长B、连接C、模式匹配D、求子串9.按二叉树的定义,具有3个结点的二叉树共有()种形态。
A、3B、4C、5D、610.一个有n个顶点的完全无向图共有()条边。
A、nB、2nC、n*(n-1)D、n*(n-1)/211.对序列{5,7,12,19,20,30},采用折半查找19,需比较()次。
A、1B、2C、3D、412.直接插入排序算法的时间复杂度为:()A、O(n2)B、O(n)C、O(n*log(n))D、O(1)13.在一个长度为n的顺序表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次前移()个元素。
A、n-iB、n-i+1C、n-i-1D、i14.在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的()。
2018年计算机408统考真题解析

由此可知,左子树为o,右子树为1,故答案为A 。
6.解析:根据二叉排序树的特性:中序遍历(LNR)得到的是一个递增序列。
图中二叉排序树的中序遍历序列为Xi ,X3, X 5, X 4, X 2, 可知X3<�5<X407.解析:拓扑排序每次选取入度为0的结点输出,经观察不难发现拓扑序列前两位一定是1,5或5, 1 (因为只有1和5的入度均为o,且其他结点都不满足仅有1或仅有5作为前驱)。
因此D 显然错误。
8.解析:m阶B树的基本性质:根结点以外的非叶结点最少含有「m/21-1个关键字,代入m =3得到每个非叶结点中最少包含1个关键字,而根结点含有1个关键字,因此所有非叶结点都有两个孩子。
此时其树形与h =5的满二叉树相同,可求得关键字最少为31个。
9.解析:根据题意,得到的HT如下:二2 34 5 643 15ASL 成功(1 + 2 + 3)/3 = 2。
10.解析:初始序列:8, 3, 9, 11, 2, 1, 4, 7, 5, 10, 6第一趟:1, 3, 7, 5, 2, 6, 4, 9, 11, 10, 8第二趟:I I I I I I I I I I I1, 2, 6, 4, 3, 7, 5, 8, 11, 10, 9 I I I I I I I I I I I第一趟分组:8, 1, 6; 3, 4; 9, 7; 11, 5; 2,.10; 间隔为5,排序后组内递增。
第二趟分组:1,5,4,10; 3,2,9,8; 7,6,11; 间隔为3,排序后组内递增。
故答案选D 。
11.解析:要熟练掌握建堆、堆的调整方法,从序列末尾开始向前遍历,变换过程如下图所示。
6)� 6')'/.)一5�气;。
\三12. 解析:对于I,二进制由千只有0,1两种数值,运算规则较简单,都是通过A LU部件转换成加法运算。
对于II,二进制只需要高电平和低电平两个状态就可以表示,这样的物理器件很容易制造。
2018年本科插班生考试试题《数据结构》A试卷

韩山师范学院2018年本科插班生考试试卷计算机科学与技术 专业 数据结构 试卷(A 卷)一、单项选择题(每题2分,共30分)1. 数据的最小单位是( )。
A. 数据元素 B.数据项 C.数据类型 D. 数据变量2. 一个栈的输入序列为A B C ,则下列序列中不可能是栈的输出序列的是( )。
A. B C AB.C B AC. C A BD. A B C 3.程序段s=i=0;do {i=i+1; s=s+i ;}while(i<=n);的时间复杂度为( )。
A. O(n)B. O(nlog 2n)C.O(n 2)D.O(n 3/2)4.一个非空广义表的表头( )。
A.不可能是子表B.只能是子表C.只能是原子D.可以是子表或原子5.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F 和R ,头指针F 总是指向队头元素的前一位置,尾指针R 总是指向队尾元素的当前位置,则该循环队列中的元素个数为( )。
A. R-FB.F-RC. (F-R+M)%MD. (R-F+M)%M6.设指针变量p 指向单链表中结点A ,若删除单链表中结点A ,则需要修改指针的操作序列为( )。
A. q=p->next ;p->next=q->next ;free(q);B. q=p->next ;p->data=q->data ;free(q);C. q=p->next ;p->data=q->data ;p->next=q->next ;free(q);D. q=p->next ;q->data=p->data ;p->next=q->next ;free(q);7.设有一个二维数组A [m ][n ],假设A [0][0]存放位置在644(10),A [2][2]存放位置在676(10),每个元素占一个空间,问A [3][3](10)存放在什么位置?脚注(10)表示用10进制表示( )。
计算机与软件学院《数据结构》笔试题及答案

计算机与软件学院考试试卷及参考答案 课程名称:数据结构 一、填空题(24分) 1. 为了能有效地应用HASH 查找技术,必须解决的两个问题是____________________和__________________________。
2. 下面程序段的功能实现数据x 进栈,要求在下划线处填上正确的语句。
typedef struct {int s[100]; int top;} sqstack; void push(sqstack &stack,int x){if (stack.top==m-1) printf(“overflow”);else {____________________;_________________;}}3. 中序遍历二叉排序树所得到的序列是___________序列(填有序或无序)。
4. 快速排序的最坏时间复杂度为___________,平均时间复杂度为__________。
5. 设某棵二叉树中度数为0的结点数为N 0,度数为1的结点数为N 1,则该二叉树中度数为2的结点数为_________;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有_______个空指针域。
6. 设某无向图中顶点数和边数分别为n 和e ,所有顶点的度数之和为d ,则e=_______。
7. 设一组初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立的初始堆为___________________________。
8. 已知一有向图的邻接表存储结构如下:从顶点1出发,DFS 遍历的输出序列是 ,BFS 遍历的输出序列是二、应用题(36分)1. 设一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果。
2. 设指针变量p 指向双向链表中结点A ,指针变量q 指向被插入结点B ,要求给出在结点A 的后面插入结点B 的操作序列(设双向链表中结点的两个指针域分别为llink 和rlink )。
2018年南京工业大学828数据结构与操作系统真题

2018年南京工业大学828数据结构与操作系统真题南京工业大学2018年硕士研究生入学考试初试试题(A卷)科目代码:828科目名称:数据结构与操作系统满分:150分注意:①认真阅读答题纸上的注意事项;②所有答案必须写在答题纸上,写在本试题纸或草稿纸上均无效;③本试题纸须随答题纸一起装入试题袋中交回!第一部分:数据结构(共90分)单项选择题(下列每题给出的四个选项中,只有一项符合试题要求。
每小题2分,共30分)1、通常所说的时间复杂度是指。
A.语句的频度B.算法的时间消耗C.渐进时间复杂度D.最坏的时间复杂度2、等概率条件下,在由n个结点构成的顺序表上做插入结点操作,需平均移动的结点数为。
A.nB.(n-1)/2C.n/2D.(n+1)/23、向具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是。
A.O(1)B.O(n)C.O(n2)D.O(logan)4、从一个栈顶指针为top的链栈中删除一个结点时,用x保存被删除的结点,20应执行下列命令。
A.x=top:top-top>nextB.top=Top->next;=top>dataB.C.x=Top->data;D,x=Top->data;Top-top->next5、循环队列SQ队满的条件是。
A.SQ->rear=SQ->froat;B.(SQ->rear+1)%MAXLEN=SQ->froatC.SQ->rear+2=SQL->froatD.(SQ->rear+2)%MAXLEN=SQL>froat6、某队列允许在两端进行入队操作,但仅允许在一端进行出队操作(称为输出受限的双端队列),若五个元素a,b,c,d,e依次进队,则不可能得到的出队顺序是。
A.bacdeB.dbaceC.dbcaeD.ecbad7、对特殊矩阵采用压缩存储的目的主要是为了。
[考研类试卷]计算机专业基础综合数据结构(数组和广义表)历年真题试卷汇编5.doc
[考研类试卷]计算机专业基础综合数据结构(数组和广义表)历年真题试卷汇编5一、综合题1 简述广义表属于线性结构的理由。
【西北大学2000一、5(3分)】2 数组、广义表与线性表之间有什么样的关系?【西北工业大学1998一、2(4分)】3 什么是广义表?请简述广义表和线性表的主要区别。
【北京大学1997二、2(5分)】4 求下列广义表的运算结果。
【南京航空航天大学1998三(10分)】(1)CAR(CDR(((a,b),(c,d,(e,f)))(2)CDR(CAR(((a,6b),(c,d,(e,f)))(3)CAR(CDR[(CAR(((a,b),(e,f))))(4)CDR(CAR(CDR(((a,b),(e,f))))(5)CDR(CDR(CAR(((a,b),(e,f))))注:CAR运算相当于有些教材中的Head运算,CDR运算相当于Tail运算。
5 画出下列广义表的存储结构图,并利用取表头和取表尾的操作分离出原子e。
(a,(0,b),(((e)))【清华大学1995二(10分)】6 画出下列广义表的两种存储结构图(0,A,B,(C,D),(E,F)。
【南京航空航天大学1999三(10分)】7 知广义表A=(((a)),(b),c,(a),(((d,e))))(1)画出其一种存储结构图;(2)写出表的长度与深度;(3)用求头部、尾部的方式求出e。
【东北大学1997一、2(5分)】8 画出具有共享结构广义表(((b,c),d,(a),((a),((b,c),d),e,0)的存储表示。
【北京工业大学1996一、3(6分)】9 已知下图为广义表的存储结构图,写出该图表示的广义表,并求该广义表的长度和深度。
【中国海洋大学2007一、1(8分)】10 已知下图为广义表的头尾链表存储结构图,请给出该图表示的广义表。
【北京理工大学2005三、1(4分)】11 给出下列所示的三元多项式的广义表表示(分别以X1,X2,X3第一到第三层变元。
2018考研专业课知识点解析计算机数据结构复习
2018考研专业课知识点解析:计算机数据结构复习从计算机统考大纲数据结构部分及其相关知识点可以看出:数据结构占了45分,和计算机组成原理部分同一个比重,这足以体现计算机专业研究生选拔对数据结构课程的重视程度。
针对这样的情况,相关专家为我们的考生们精心准备了一些数据结构复习的建议。
统考大纲对数据结构的考查目标定位为掌握数据结构的基本概念、基本原理和基本方法,掌握数据的逻辑结构、存储结构以及基本操作的实现;能够对算法进行基本的时间复杂度和空间复杂度的分析;能够运用数据结构的基本原理和方法进行问题的分析求解,具备采用C、C++或JA V A语言设计程序与实现算法的能力。
当然,考生也不必因此而专门复习一遍C或C++程序设计,毕竟复习时间有限,而且数据结构要求的重点在于算法设计的能力,而不是编写代码的能力,因此,只要能用类似伪代码的形式把思路表达清楚就行,不用强求写出一个没有任何语法错误的程序。
下面我们来解析一下知识点:线性表这一章里面的知识点不多,但要做到深刻理解,能够应用相关知识点解决实际问题。
链表上插入、删除节点时的指针操作是选择题的一个常考点,诸如双向链表等一些相对复杂的链表上的操作也是可以出现在综合应用题当中的。
栈、队列和数组可以考查的知识点相比链表来说要多一些。
最基本的,是栈与队列FILO 和FIFO的特点。
比如针对栈FILO的特点,进栈出栈序列的问题常出现在选择题中。
其次,是栈和队列的顺序和链式存储结构,这里一个常考点是不同存储结构下栈顶指针、队首指针以及队尾指针的操作,特别是循环队列判满和判空的2种判断方法。
再次,是特殊矩阵的压缩存储,这个考点复习的重点可以放在二维矩阵与一维数组相互转换时,下标的计算方法,比如与对角线平行的若干行上数据非零的矩阵存放在一维数组后,各个数据点相应的下标的计算。
这一章可能的大题点,在于利用堆栈或队列的特性,将它们作为基础的数据结构,支持实际问题求解算法的设计,例如用栈解决递归问题,用队列解决图的遍历问题等等。
2012年暨南大学数据结构全国考研真题.doc
2012年全国硕士研究生统一入学考试自命题试题******************************************************************************************** 学科与专业名称:计算机技术,软件工程考试科目代码与名称:830 数据结构考试科目:数据结构共5页,第1 页考试科目:数据结构共5 页,第2 页图1考试科目:数据结构共5 页,第3页图2所示带权有向图及其邻接矩阵,利用Floyd径及其路径长度(要求写出求解过程)。
(12分)图3.给出一组关键字的序列为{ 12,15,34,37,39,22,38,66,74,80Hash(key)=key mod 11,画出按照链地址法处理冲突构造所得的哈希表,并在记录考试科目:数据结构共5 页,第4页考试科目:数据结构共5页,第5页赠送以下资料考研英语作文模板(英语一)大作文考研英语大作文一般是看图写作,从一幅图分析含义及意义,所以只需要几个好的模板,根据题目套上去就行了。
题目反映的意义无非三种:积极,消极和中性。
所以我准备了三个不同类型的模板,到时候大家根据题目自己分析一个写作方向,再结合模板,把内容填进模板就好了。
模板只是保证文章结构不过于混乱,具体的写作还希望大家多背历年写作真题和资料书上的作文,总结出自己喜欢的句子背下来,背熟之后根据原文的中文意义用自己的语言再把文章写出来,这样才能得到更好的效果。
切记:模板只能起到应急和保证结构的作用,真正写好作文拿高分还需要自己不断地背诵和练习,祝大家考试顺利!模板一:积极(图画反映了什么积极现象,我们应提倡…)………(开头:为了避免跟大部分模板有重复之嫌,我们可以在第一句写一句跟作文话题有关的句子,俗语和谚语皆可,也可以是一句关于话题的感悟。
如果实在写不出可以不写)……….,The picture above symbolically/subtly illustrate/demonstrate that ……(描述图画)……。
2018年计算机学科专业基础综合试题及参考答案
微信公众号【小研学长】免费分享
微信公众号【小研学长】免费分享
A.仅I、E
c.仅皿、W
B.仅I � II、E
D. I、E、E和 N
22. 下列关于外部 1/0 中断的叙述中,正确的是
A.中断控制器按所接收中断请求的先后次序进行中断优先级排队
B.CPU响应中断时,通过执行中断隐指令完成通用寄存器的保护
、
销,则r"c的取值分另!…
A. 2048 、1:�军B. 64 、
18. 按字节编址的计算机叶飞慕:刷刷在乡型数组 A 的首地址为 2000H,使
用变址寻址和循环结构访问数组A,保存数组下标的变址寄存器初
值为 0,每次循环取一个数组元素,其偏移地址为变址值乘以 sizeof
(double ),取完后变址寄存器内容自动加1。 若某次循环所取元素
这种现象称为磁臂站着。下列磁盘调度算法中,不会导致磁臂粘
着的是 A.先来先服务( FCFS)
B.最短寻道时间优先( SSTF)
I .提前读
m. 延迟写
簇 iCL..
A.仅 I , -II
C.仅 I 、 盟、 IV
32.在下列同步机制中,
A. Peterson方法
·B. swap指令
C.信号量方法
D.TestAndSet指令
崎 ··
u
oI
,15 → 9,8,7,
→ 1,8,4�5 9点,6,汇7,4,5
12. 冯·诺依曼结构计算机中数据采用二进制编码表示,其主要原
因是
I .二进制的运算规则简单
JI .制造两个稳态的物理器件较容易
皿.便于用逻辑门电路实现算术运算
A.仅 I 、 E B.仅 I 、 E
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2018年全国硕士研究生统一入学考试自命题试题(A卷) ******************************************************************************************** 学科、专业名称:计算机科学与技术、软件工程 研究方向:计算机系统结构081201,计算机软件与理论081202,计算机应用技术081203,软件工程083500,计算机技术(专业学位) 085211 考试科目名称及代码:数据结构830 考生注意:所有答案必须写在答题纸(卷)上,写在本试题上一律不给分。 一、 单项选择题(每题2分,共30分)
1. 任何一棵二叉树T, 如果度为1的结点数为2,度为0结点数为11,其分支数为 ( ) 。 A. 23 B. 22 C. 24 D. 21 2. 深度为k的二叉树至多有( ) 个结点(k>=1); A. 2k B. 2k-1 C. 2k+1 D.2k-1 3. 已知一棵二叉树结点的中序序列为BDCEAFHG, 后序序列为DECBHGFA, 则结点的先序序列为( ) 。 A. ABCDEFGH B. DGBFHCA C. DECBGFAH D. CAFHGDB 4. 在有向图的逆邻接表存储结构中,顶点v在表结点中出现的次数是( )。 A. 顶点V的度 B. 顶点V的出度 C. 顶点V的入度 D. 依附于顶点V的边数 5. 顺序栈s的GetTop(s, e)操作是用e返回s的栈顶元素,则下列( )是正确的操作。 A. e=*(s.top) B. e=*(s.top-1) C. e=*(--s.top) D. e=s.top-1 6. 若线性表最常用的操作是存取第i个元素及其前趋的值, 则采用( )存储方式节省时间. A. 单链表 B. 双链表 C. 单循环链表 D. 顺序表
7. 在一棵非空m阶的B-树上,除根之外的所有非终端结点 ( )。 A. 至少有2/m棵子树 B. 至多有2/m棵子树 C. 至少有2/m棵子树 D. 至多有2/m棵子树 8. 若用单链表来表示队列,最适合队列操作的是( )。 A. 带尾指针的非循环队列 B. 带尾指针的循环链表 C. 带头指针的非循环链表 D. 带头指针的循环链表 9. 下面的序列中, ( )是堆。 A. 12, 36, 27, 65, 40, 34, 98, 81, 73, 55, 49 B. 12, 36, 27, 65, 40, 14, 98, 81, 73, 55, 49 C. 12, 36, 27, 20, 40, 34, 98, 81, 73, 55, 49 D. 12, 36, 35, 65, 40, 34, 98, 81, 73, 55, 49 10. 设有一个10阶的对称矩阵A, 采用压缩存储方式, 以行序为主序存储其下三角,a11为第一个元素, 其首存储地址为1, 每个元素占1个地址空间, 则a85的地址为( ) 。 A. 32 B. 33 C. 34 D. 40
考试科目: 数据结构 共5页,第 1 页 11. 用带头结点的单链表存储队列,其队头指针指向头结点,队尾指针指向队尾结点,则在进行出队时( )。 A. 仅修改队头指针 B. 仅修改队尾指针 C. 对头、尾指针都要修改 D. 对头、尾指针都可能要修改 12. 由权为7,2,4,5的四个叶子结点构造一个哈夫曼树,该树的带权路径长度为( )。 A. 33 B. 36 C. 35 D. 34 13. 现有一"遗传"关系:设x是y的父亲,则x可以把它的属性遗传给y。表示该遗传关系最适合的数据结构为 ( ) 。 A.向量 B.图 C.树 D.二叉树 14. 线性表是具有n个 ( )的有限序列。 A. 表元素 B. 字符 C. 数据元素 D. 数据项
15. 在所有排序方法中,关键字的比较次数与记录的初始排列无关的是( )。 A. 希尔排序 B. 冒泡排序 C. 直接插入排序 D. 直接选择排序
二.填空题(每空2分,共20分) 1. 单链表中设置头结点的作用是 。 2. 操作系统中先来先服务是 数据结构应用的典型例子。 3. 对线性表进行折半查找时,要求线性表必须 。 4. 在中序线索二叉树上,若当前访问节点的右标志为0,根据中序遍历的定义,它的后继结点是 。 5. 哈夫曼树是带权路径长度 的二叉树, 通常权值较大的结点离根 。 6. 在m阶B-树中某结点插入一个关键字后,若该结点的关键字数目已达 时,就要对该结点进行分裂。 7. 顺序查找一个共有n个元素的线性表,其时间复杂度为 。 8. 对于含有n个顶点e条边的无向连通图, 利用广度优先搜索遍历图的时间复杂度为 。 9. Dijkstra算法是按 次序产生一点到其余各定点最短路径的算法。
三.判断题(每题1分,共10分,正确的选t,错误的选f) 1. 将一棵树转换成二叉树后,根结点无右子树。 ( ) 2. 归并排序是不稳定的排序方法。 ( ) 3. 在一个有向图的邻接表中,如果某个顶点的链表为空,则该顶点的出度一定为零。( ) 4. 在二叉树的第6层上至多有31个结点。( ) 5. B-树和B+树都能有效地支持随机检索。( ) 6. 图G的最小生成树的代价一定不大于其他生成树的代价。 ( ) 7. 一个无序的元素序列可以通过构造一棵二叉排序树而变成一个有序的元素序列。( ) 8. 图的多重邻接表表示法中,表中结点的数目是图中边的条数。( ) 9. 对特殊矩阵压缩可以降低运算的时间复杂度。 ( ) 10. 无向图的邻接矩阵是对称的,因此可只存储矩阵的下三角阵。 ( )
四. 简答题(45分) 1. 利用拓扑排序的方法求出图1所示有向图的所有拓扑序列。对于有向无环图,还可使用什么方法获得拓扑序列?(10分) 考试科目: 数据结构 共5 页,第 2 页 图1 2. 一棵二叉树,若根结点的左右子树均有三个结点,其左子树的先序序列与中序序列相同,右子树的中序序列与后子序序列相同,试构造该二叉树。(7分)
3. 已知序列(12,18,4,3,6,13,2,9,19,8)。请给出采用希尔排序对该序列作升序排序的每一趟结果(步长分别为5,3,2,1)。(8分)
4. 设有一组关键字(33,41,20,24,30,13,01,67), 采用散列函数H(key)=(3*key) %11, 采用线性 探测再散列解决冲突, Hi=(H(key)+di)%11,其中di=1,2,…,10. 试在0~10的散列地址空间中
对该关键字序列(按从左到右的次序)构造散列表,并计算在查找概率相等的前提下,查 找成功时的平均查找长度。(10分)
5. 已知图2所示的有向图。设其顶点a,b,c,d,e表示一个乡的5个村庄,弧上的权值表示为两村之间的距离。乡内要建立一所学校,问学校设在哪个村庄才能使从各村出发到学校的距离总和最小。(要求回答解决上述问题应采用什么算法,并写出应用该算法解答上述问题的每一步计算结果)。(10分)
图2 考试科目: 数据结构 共5 页,第 3 页 五、算法填空(共2小题,每空2分,共20分)
1. 已知一个顺序存储线性表的元素递增有序排列。下面的算法实现删除该表中值相同的元素。请在__________处填上适当内容,使其成为一个完整算法。 typedef struct { ElemType *elem; int length ; int listsize ; } SqList; void dele(SqList &L) { int i=0, j=1; while ( (1) ) { if ( L.elem[j]!=L.elem[i]) L.elem[++i]= (2) ; (3) ; } L.length= (4) ; }
2. 下面算法是用Dijkstra算法求有向网G的v0顶点到其余顶点v的最短路径P[v]及其带权长度D[v]。若P[v][w]为TRUE,则w是从v0到v当前求得最短路径上的顶点。 final[v]为TRUE当且仅当v∈S(S为已求得最短路径的终点的集合), 即已经求得从v0到v的最短路径。请在__________处填上适当内容,使其成为一个完整算法。 typedef struct ArcCell{ VRType adj; InfoType *info; //该弧相关信息的指针 }ArcCell, AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; tpyedef struct{ VertexType vexs[MAX_VERTEX_NUM]; //顶点向量 AdjMatrix arcs; //邻接矩阵 int vexnum,arcnum; //图的当前顶点数和弧数 GraphKind kind; //图的种类标志 }MGraph; void ShortestPath_DIJ( MGraph G, int v0, PathMatrix &P, ShortPathTable &D) { for (v=0; vfinal[v] = FALSE; D[v] = (5) ; for (w=0; (6 ) ; ++w) P[v][w] = FALSE; if (D[v] < INFINITY) { P[v][v0] = TRUE; P[v][v] = TRUE; } } D[v0] = 0; (7) ; for (i=1; imin = INFINITY; for (w=0; w考试科目: 数据结构 共5 页,第 4 页