北航9802数据结构Word文件下载.docx
- 文档编号:22088338
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:19
- 大小:77.04KB
北航9802数据结构Word文件下载.docx
《北航9802数据结构Word文件下载.docx》由会员分享,可在线阅读,更多相关《北航9802数据结构Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
<
v4,v6>
v5,v7>
v6,v7>
},G的拓扑序列是_________。
(A)v1,v3,v4,v6,v2,v5,v7(B)v1,v3,v2,v6,v4,v5,v7
(C)v1,v3,v4,v5,v2,v6,v7(D)v1,v2,v5,v3,v4,v6,v7
8.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为_________
(B)
(C)
(D)n
9.下面关于B树和B+树的叙述中,不正确的是_________
(A)B树和B+树都是平衡的多分树。
(B)B树和B+树都可用于文件的索引结构。
(C)B树和B+树都能有效地支持随机检索。
(D)B树和B+树都能有效地支持顺序检索。
10.下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是_________。
(A)选择排序法(B)插入排序法
(C)快速排序法(D)堆积排序法
二、(10’)
有实现同一功能的两个算法A1和A2,其中A1的时间复杂度为T1=O(2n),A2的时间复杂度为T2=O(n2),仅就时间复杂度而言,请具体分析这两个算法哪一个好。
三、(5’+10’+10’+5’)
为建立一个具有n份档案的档案库需要设计如下数据结构:
所有档案存储在一个动态存储的双向循环链表中,每份档案占用一个地址连续的存储块成为该链表中的一个结点,整个链表为一个链接顺序文件,取名为dossier(档案),同时分别建立两个索引,其中一个为稠密索引,取名为dense,另一个是表长为m的杂凑表索引,取名为bucket,该杂凑表采用链地址法处理冲突。
上述两种索引中都分别存储在每一份档案的存储地址。
1.请分别画出dossier、dense、bucket的结构示意图。
2.分别设计出dossier、dense、bucket的数据结点的结构,即为了满足档案的插入、删除、查找的操作,每个结点必要的数据项的名称及其作用。
3.针对上述结构,用简明的文字分别说明所有可能的查找方法(查找路径)。
4.分别给出每一种查找方法在查找成功时的平均查找长度。
四、(10’)
已知num为无符号十进制整数,请写一非递归算法,该算法依次输出num对应的r进制的各位数字。
要求算法中用到的堆栈采用线性链表存储结构。
(1<
r<
10)
五、(10’)
已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O
(1)的算法,该算法删除线性表中所有值为item的数据元素。
(O
(1)表示算法的辅助空间为常量)
六、(10’x2)
设有一集合,其成员为任意类型的数据元素,基本操作为插入、删除和成员测试。
若为该集合设计一个集合类型,则
1.该集合可以采用哪几种存储结构?
就存储空间开销以及操作而言,分别说明每种存储结构的特点。
2.分别写出上述三种操作在你所确定的一种存储结构上的具体体现(算法)。
(2001年)
一、问答题(10’)
一般情况下,线性表可以采用哪几种存储结构?
请分别叙述每一种存储结构的构造原理与特点。
已知AOE网为G=(V,E),其中V={v1,v2,v3,v4,v5,v6,v7,v8,v9,v10},E={a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14},其中:
a1:
(v1,v2)5a2:
(v1,v3)6a3:
(v2,v5)3a4:
(v3,v4)3
a5:
(v3,v5)6a6:
(v4,v5)3a7:
(v4,v7)1a8:
(v4,v8)4
a9:
(v5,v6)4a10:
(v5,v7)2a11(v6,v10)4a12:
(v7,v9)5
a13:
(v8,v9)2a14:
(v9,v10)2
注:
顶点偶对右下角的数字表示边上的权值。
请按下述过程指出所有关键路径:
ee[1:
10]:
le[1:
e[1:
14]:
l[1:
其中,ee[i]与le[i]分别表示事件vi的最早发生时间与最晚发生时间;
e[i]与l[i]分别表示活动ai的最早开始时间与最晚开始时间。
三、(10’)
欲建立一文献库,其正文(文献本身)存放在一个双向循环链表的各个链接点中。
1.为便于链接点的插入、删除操作,以及按题目、发表日期、发表者名称、主题词(假设每文最多给出三个主题词)进行检索,请设计该链表的链接点结构(给出链接点每个域的名称,并说明该域内存放什么信息。
以下各小题设计链结点结构也这样要求)。
画出整个链表结构的示意图。
2.设计一个三级索引结构,其中第三级索引称为题目索引,示按文献题目构造的稠密索引,通过该级索引并根据给定题目可得到每个文献的存放地址;
该级索引按文献学科类分类存放。
第二级索引称为中类索引,是题目索引的索引,指出同一中类的文献题目索引的存放位置(例如农林类、气象类……,古代史类,近代史类……)。
第一级索引称为大类索引,指出同一大类(如:
自然科学类、历史类……)的文献的中类索引的存放位置。
请设计每一级索引的结点结构,并画出该索引的整体示意图。
3.在设计一种三级索引结构,其中第三级索引仍是题目索引(与2题所述相同),第二级索引把具有相同主题词的文献题目索引地址组织在一个单链表中。
第一级索引称为主题词索引,用文献给出的主题词做关键字组成杂凑表,即该级索引为一个杂凑表,能够指出具有同一主题词的文献题目索引的索引链表的第一个链结点的存储位置。
该杂凑表采用链地址法处理冲突。
已知非空线性链表由list指出,链结点的构造
为
,请写一算法,将链表中数据域值最小的那个链结点移至链表的最前面。
要求:
不得额外申请新的链接点。
五、(5’+10’)
已知求两个正整数m与n的最大公因子的过程用自然语言可以表述为反复执行如下动作:
第一步:
若n等于零,则返回m;
第二步:
若m小于n,则m与n相互交换;
否则保存m,然后将n送m,将保存的m除以n的余数送n。
1.将上述过程用递归函数表达出来(设求x除以y的余数可以用xMODy形式表示)。
2.写出求解该递归函数的非递归算法。
六、(10’)
函数voidinsert(char*s,char*t,intpos)将字符串t插入到字符串s中,插入位置为pos。
请用C语言实现该函数。
假设分配给字符串s的空间足够让字符串t插入。
(说明:
不得使用任何库函数。
)
七、(15’)
命令sgrep用来在文件中查找给定字符串,并输出串所在行及行号。
命令格式为:
sgrep[-i]filenamesearchstring
其中:
-i:
表示查找时大小写无关,省略时表示大小写相关。
filename:
给定文件名。
searchstring:
所要查找的串。
用C语言实现该程序,该程序应具有一定的错误处理能力。
(提示:
使用命令行参数)
注意:
除文件及输入/出操作可使用库函数外,其它不允许使用库函数。
(2002年)
一、简答题
1.“数据结构”课程是计算机专业的基础课还是专业课,或者专业基础课?
(2’)
2.学习“数据结构”课程需要哪些课程作为它的基础(举例两门课程)?
若没有这些知识,对学习“数据结构”课程可能会产生哪些影响?
请举例说明(不超过100字)。
(4’)
3.“数据结构”课程将为那些课程学习奠定必要的基础?
请举例说明哪些课程(举例两门课程)用到了“数据结构”课程的哪些知识(不超过100字)。
二、(5’)
请推导出结论:
具有n0个叶结点的哈夫曼树(Huffman)的分支总数为2(n0-1)。
三、单项选择题(2’x15)
1.线性链表中各链接点之间的地址__________。
A)必须连续B)部分地址必须连续
C)不一定连续D)连续与否无所谓
2.在非空线性链表中由p所指的链接点后面插入一个由q所致的链接点的过程是依次执行动作__________。
A)link(q)p;
link(p)q;
B)link(q)link(p);
C)link(q)link(p);
pq;
D)link(p)q;
link(q)p;
3.在非空双向循环链表中由q所指的那个链接点前插入一个p指的链接点的动作对应的语句依次为rlink(p)q,llink(p)llink(q),llink(q)p,__________。
(空白处为一条赋值语句)
A)rlink(q)pB)rlink(llink(q))p
C)rlink(llink(p))pD)rlink(rlink(p))p
4.在初始为空的堆栈中依次插入元素f,e,d,c,b,a以后,连续进行了三次删除操作,此时栈顶元素是__________。
A)cB)dC)bD)e
5.若某堆栈的输入序列为1,2,3,……,n,输出序列的第1个元素为n,则第i个输出元素为__________。
A)iB)n-iC)n-i+1D)哪个元素无所谓
6.求字符串T在字符串S中首次出现的位置的操作称为__________。
A)求串的长度B)求子串C)串的模式匹配D)串的连接
7.若一棵度为7的树有8个度为1的结点,有7个度为2的结点,有6个度为3的结点,有5个度为4的结点,有4个度为5的结点,有3个度为6的结点,有2个度为7的结点,该树一共有__________个叶结点。
A)35B)28C)77D)78
8.若一棵二叉树有1001个结点,且无度为1的结点,则叶结点的个数为__________。
A)498B)499C)500D)501
9.已知某完全二叉树采用顺序存储结构,结点数据信息的存放顺序依次为A、B、C、D、E、F、G、H,该完全二叉树的后序遍历序列为__________。
A)HDEBFGCAB)HEDBFGCAC)HDEBAFGCD)HDEFGBCA
10.若某带权图为G=(V,E),其中V={v1,v2,v3,v4,v5,v6,v7,v8,v9,v10},E={(v1,v2)5,(v1,v3)6,(v2,v5)3,(v3,v5)6,(v3,v4)3,(v4,v5)3,(v4,v7)1,(v4,v8)4,(v5,v6)4,(v5,v7)2,(v6,v10)4,(v7,v9)5,(v8,v9)2,(v9,v10)2}(注:
顶点偶对右下角的数据表示边上的权值),则G的关键路径的长度为__________。
A)19B)20C)21D)22
11.顺序查找法适合于存储结构为__________的线性表。
A)顺序存储结构或链式存储结构B)散列存储结构
C)索引存储结构D)压缩存储结构
12.当n足够大时,在按值有序的顺序表中进行折半查找,当查找概率相等的情况下,其查找成功的平均查找长度是__________。
A)(n+1)/2B)n/2C)log2(n+1)-1D)log2(n+1)
13.下述命题中,不成立的应是__________。
A)m阶B树中的每一个分支结点的子树的个数都小于或等于m
B)m阶B树中的每一个分支结点的子树的个数都大于或等于m/2
C)m阶B树中的任何一个结点的子树的高度都相等
D)m阶B树中有k个子树的分支结点包含k-1个关键字
14.已知散列范围为[0..9],散列函数(哈希函数)为H(key)=keyMOD9,处理冲突的方法为线性探测再散列法,依次插入关键字序列8,18,25,44,34,21,19,23后的哈希表为__________。
1
2
3
4
5
6
7
8
9
A)
18
44
19
21
23
25
34
B)
C)
D)
15.在下述的排序方法中,不属于内排序方法的是__________。
A)插入排序法B)选择排序法C)拓扑排序法D)归并排序法
四、(15’)
请设计一个事件复杂度为O(n),空间复杂度不超过O
(2)的算法,该算法将数组A[0:
n-1]中所有元素循环右移k个位置。
五、(15’)
已知某二叉树采用广义表形式作为输入,请写一非递归算法,建立该二叉树的二叉链表存储结构。
设该链接点构造为
,根结点地址为T。
关于采用广义表形式表示二叉树的约定如下:
●表中的一个字母表示一个结点的数据信息;
●每个根结点作为由子树构成的表的构成的表的名字放在表的前面;
●每个结点的左子树与右子树之间用逗号分开;
若只有右子树而无左子树,则逗号不能省略;
●整个广义表的末尾由一个特殊符号@作为表的结束标志。
例如:
(A(B(D),C(F(,E),G))@表示某一棵二叉树,该二叉树的根结点数据信息为A。
其中,数据信息为F的结点只有右子树,而无左子树。
六、(1’x10)
在下面给出的C函数实现中的__________处填上适当的内容,使其完成正确的功能。
函数说明:
函数voidftoa(doublef,chars[])将浮点数f转换成相应的字符串,并存放在s中,该函数最多只能转换小数点后四位,如123.45将转换成“123.45”,-123.456789将转换成“-123.4567”。
voidftoa(doublef,chars[])
{
inti,j,len,c,n;
doublesign;
if((sign=f)<
0)
f=-f;
n=(int)f;
i=0;
do{
s[i++]=n%10+__________;
}while(__________);
if(sign<
__________;
len=i;
for(i=0,j=len-1;
__________;
__________){
c=s[i];
s[j]=c;
}
f-=(int)f;
s[len++]=__________;
for(i=0;
i<
4;
i++){
f*=10;
s[len++]=__________;
while(s[len-1]==’0’)
s[len]=__________;
}
命令tail用来打印文件中最后n行。
tail[-n]filename
其中
-n:
n表示需要打印的行数,当省略此参数时,n的缺省值为10。
filename:
给定文件名。
例如,命令tail–20example.txt表示打印文件example.txt的最后20行。
请用C语言实现该程序,该程序应具有一定的错误处理能力,例如能处理非法命令参数和非法文件名。
提示1:
使用命令行参数;
提示2:
可以使用下面的C库函数:
-intatoi(char*s)将数字串转换为相应整数;
-fopen,fclose,printf,fprintf,exit;
-fgets(char*s,intn,FILE*fp)从文件中读入一行;
-void*malloc(unsignedsize),free申请和释放内存;
-strlen计算字符串长度;
-strcpy将一个字符串拷贝到另一个字符串中。
除此之外,不允许使用其它库函数。
北京航空航天大学1999年研究生入学考试
数据结构试题
1(20分,每小题2分)
单项选择题
①若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()。
(1≤i≤n+1)
A.O(0)B.O
(1)C.O(n)D.O(n2)
②若在线性表中采用折半查找法查找元素,该线性表应该()。
A.元素按值有序
B.采用顺序存储结构
C.元素按值有序,且采用顺序存储结构
D.元素按值有序,且采用链式存储结构
③已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为()。
A.–A+B*C/DEB.–A+B*CD/EC.-+*ABC/DED.-+A*BC/DE
④若二叉树采用二叉链表存储结构,要交换其所有分支结点左右子树的位置,利用()遍历方法最合适。
A.前序B.中序C.后序D.按层次
⑤利用逐点插入法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉排序树以后,查找元素35要进行()元素间的比较。
A.4次B.5次C.7次D.10次
⑥对二叉排序树进行()遍历,可以得到该二叉树所有结点构成的排序序列。
A.前序B.中序C.后序D.按层次
⑦具有n个顶点的有向图最多有()条边。
A.nB.n(n—1)Cn(n+1)D.n2
⑧从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为()排序法。
A.插入B.选择C.谢尔D.二路归并
⑨排序趟数与序列的原始状态有关的排序方法是()排序法。
A.插入B.选择C.泡D.快速
⑩下面给出的四种排序法中()排序法是不稳定性排序法。
A.插入B.泡C.二路归并D.堆积
2(10分)
已知n阶下三角矩阵A(即当i<
j时,有aij<
0),按照压缩存储的思想,可以将其主对角线以下所有元素(包括主对角线上元素)依次存放于一维数组B中。
请写出从第一列开始采用列序为主序分配方式时在B中确定元素aij的存放位置的公式。
3(20分)
已知在某并发处理系统的Petri网基础上建立的可达图如图1所示。
图中每个顶点表示系统运行中的一种状态,有向边(弧)表示事件(用t表示),例如有向边(Vi,Vj)表示系统在状态Vi时出现该事件将引发系统由状态Vi到状态Vj。
1请分别给出该可达图的邻接表、邻接矩阵以及邻接矩阵的三元组形式,要求每种存储结构能够表达出该可达图的全部信息,并分别对这三种形式中每个部分的含义(物理意义)予以简要说明。
2若假设每个域(包括指针域)的长度为一个字节,请分别计算出这三种结构所占用的空间大小。
4(本题10分,每小题5分)
在排序连续顺序文件中采用折半查找方法查找记录存在与否的过程可以借助于一棵平衡二叉树(也称判定树)来模拟,树中结点的值为记录在文件中的位置序号。
1若文件中有l9个记录,请画出这棵判定树;
2当文件中有n个记录时,求出该判定树的深度。
5(10分)
已知非空线性链表第一个节点由list指出,请写一算法,交换p所指的节点与其下一个节点在链表中的位置(设p指向的不是链表最后那个节点)。
6(15分)
已知Ackermann函数定义如下:
1写出Ack(2,1)的计算过程。
2写出计算Ack(m,n)的非递归算法。
7(15分)
已知深度为h的二叉树采用顺序存储结构已存放于数组BT〔1:
2h-1]中,请写一非递归算法,产生该二叉树的二叉链表结构。
设二叉链表中链结点的构造为
根结点所在链结点的指针由T给出。
北京航空航天大学
一九九八年招收研究生
题单号:
461
数据结构试题(共5页)本试卷共六大题。
写算法的语言可以用类PASCAL语言,也可以用某一种程序设计语言,但不得采用生僻古怪的表示方法。
一、(本题共40分,每小题4分)
简要回答下列各题:
1.对一个算法进行分析的前提条件是什么?
主要从哪几个大的方面对一个算法进行分析?
2.若较频繁地对一个线性表进行插入和删除操作,该线性表宜采用何种存储结构?
为什么?
3.在非空双向循环链表中q所指的结点后面插入p所指的结点的过程已经依次进行了以下三步:
llink(p)←q;
rlink(p)←rlink(q);
rlink(q)←p;
第四步应是什么动作?
(写出该动作对应的语句)。
4.若按照压缩存储的思想将n×
n阶的对称矩阵A的下三角部分(包括主对角线元素)以行序为主序方式存放于一维数组B
中,那么,A中任一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北航 9802 数据结构