浙江理工大学938数据结构与数据库技术2018年考研真题
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(D)O(n)
3. 若某链表中最常用的操作是在最后的一个结点之后插入一个结点或删除最后一
个结点,则采用
存储方式最节省运行时间。
(A)单链表 (B)单循环链表 (C)无头双向链表 (D)带头双向链表
4. 若链队列 HQ 中只有一个结点,则队列的头指针和尾指针满足下列条件
。
(A)HQ->rear->next==HQ->front (C)HQ->front==HQ->rear
2018 年浙江理工大学
硕 士 研 究 生 入 学 考 试 专 业 课 真 题
浙江理工大学
2018 年硕士研究生招生考试初试试题
考试科目:数据结构与数据库技术
代码:938
(请考生在答题纸上答题,在此试题纸上答题无效)
第一部分:数据结构(本部分共 90 分)
一、单项选择题(每小题 3 分,本题共 36 分)
h(k)=k%11,散列地址空间为 0~10。若采用线性探查法解决冲突,则平均查找长
度为
。
(A)4/3
(B)13/9
(C)17/9
(D)19/9
12. 已知一组记录的关键字值为{46,74,18,53,14,20,40,38,86},按快速排序方法对
该序列进行一趟排序后的结果是
。
(A){38,14,18,20,40,46,53,74,86} (C){14,20,40,38,18,46,74,53,86}
BERGS BLAUS BLONP BOLID BONAP BOTTM
…
Berglunds snabbkop Blauer See Delikatessen Blondesddsl père et fils Bolido Comidas preparadas Bon app' Bottom-Dollar Markets
3. 设哈希函数为 HT,解决冲突的方法为外链地址法,哈希函数采用除留余数法(k%p, k 为待删除的关键字,p 为小于基本哈希表容量 m 的质数)。若哈希表中某个位置上 的 key 域值为零,则表示该位置未被占用。试编写程序,实现从用哈希表中删除关 键字 k 的算法。
第 4 页 ,共 7 页
第二部分:数据库技术(本部分共 60 分,每小题 10 分。任选 6 小
。
(A)11
(B)12
(C)13
(D)14
9. 已知一个带权图的顶点集 V 和边集 G 分别如下,则该图的最小生成树的权值
为
。
第 1 页 ,共 7 页
V={1, 2, 3, 4, 5, 6, 7, 8};
E={(3,1)6,(3,4)7,(3,7)5,(1,2)3,(1,4)4,(4,7)8,(4,5)4,(7,8)5,(2,6)3,
(B)HQ->front->next==HQ->rear (D)HQ->front->next==HQ->rear->next
5. 在一个栈顶指针为 HS 的链栈中插入一个*s 结点时,应执行的操作为
。
(A)HS->next=s;s->next=HS->next; (C)s->next=HS; HS=s;
(2,5)5, (5,8)8, (5,6)5, (8,6)6},
(A)24
(B)29
(C)30
(D)31
10. 当待排序的关键字个数 n 很小,且初始排列为逆序时,采用下列排序方法中
的
,算法的时间复杂度最小。
(A)直接插入排序 (B)简单选择排序 (C)冒泡排序 (D)快速排序
11. 已知一个待散列存储的线性表{17,80,56,34,26,75,67,51,93},散列函数为
(B){38,40,18,20,14,46,53,74,86} (D){18,14,20,40,38,46,74,53,86}
二、程序填空题(每个空格 2 分,本题共 24 分)
1. 下列程序是将两个有序的单链表 lnode1 和 lnode2 合并成一个依然有序的单链表, 试在下列空白处填入正确语句。
typedef struct node { int data; struct node *lch, *rch;
}snode; snode *insert(snode *t, int x){
snode *p, *q, *s;
s=(snode *)malloc(sizeof(snode));
第 3 页 ,共 7 页
typedef struct node{
int data; //数据域
struct node *next; //指针域
}linklist;
void sort(linklist *lnode1, linklist *lnode2){
linklist *p1,*p2,*tmp;
p1=lnode1;
p2=
1. 下列程序段所代表的算法的时间复杂度为
。
i=1;
while(i<=n) i*=2;
(A)O(n)
(B)O(n2)
(C)O(log2n)
(D)O( n )
2. 若在一个具有 n 个结点的有序单链表中插入一个新结点并仍然有序,则该操作的
时间复杂度是
。
(A)O(1)
(B)O(n2)
(C)O(nlog2n)
Mexico UK
Mexico D.F. London
中文说明 客户编码 客户名称 客户所在国家 客户所在城市 客户地址
Address Obere Str. 57 Avda. de la Constitucion 2222
Mataderos 2312 120 Hanover Sq.
第 5 页 ,共 7 页
题解答,按得分最高的 6 小题计分,本部分合计得分不超过 60 分)
数据库 Sales 用来存放某企业销售数据,它有 4 张表,Products 表用来存储商品 信息,Customers 表用来存储客户信息,Orders 表用来存储订单信息,OrderItems 表 用来存储订单明细信息,各表结构如下:
(1)
;
while(p1->next!=null && p2!=null){
if (p1->next->data>p2->data) {
tmp=
(2)
;
p2->next=p1->next;
(3)
=p2;
p2=tmp;
}else p1=p1->next;
}
if (p2!=null)
(4)
;
}
第 2 页 ,共 7 页
该二叉排序树上查找一个结点的平均查找长度为
。
(A)11/4
(B)21/4
(C)19/8
(D)5/2
8. 假定对共有 144 个元素的线性表进行分块查找,若将表均匀地分为 x 块(每块元
素个数相同)。假设块查找和块内查找均采用顺序查找法,则在等概率情况下,
若要使分块查找的平均查找长度 ASL 最小,则分块数 x 的值应为
最高的 2 小题计分)
1. 已知一颗二叉树的根节点为 t,其二叉链表存储结构定义如下。试编写程序,按照 中序遍历非递归算法,计算 x 这个结点(数值域为 x)之后输出的其它结点的个数。 typedef struct node {
int data; //数值域 struct node *lch,*rch; } tnode ;
…
Sweden Germany France Spain France Canada
…
Luleo Mannheim Strasbourg Madrid Marseille Tsawassen
3.Orders 表结构:
列名
类型
OrderID
数值型
CustomerID
字符型
OrderDate
日期型
RequiredDate
(B)s->next=HS->next; HS->next=s; (D)s->next=HS; HS=HS>next;
6. 有一组数值{13, 21, 32, 17, 26},用以构造哈夫曼树,则其带权路径长度 WPL
值为
。
(A)241
(B)248
(C)252
(D)270
7. 假设结点序列为{50,30,90,60,95,70,48,18},以此构成一棵二叉排序树,则在
linklist q, p=head->next;
int temp;
for(; p->next!=NULL; p=p->next){
(5) =GetMinKey( (6) );
if (p->data!=q->data){
temp = p->data;
(7)
;
(8)
;
}
}
}
3. 已知二叉排序树的根节点为 t,左孩子和右孩子分别为 lch 和 rch。下列程序将一 个结点 x 插入到二叉排序树中,试在下列空白处填入正确语句。
1.Products 表结构:
列名 ProductID ProductName Category QuantityPerUnit UnitPrice
类型 数值型 字符型 字符型 字符型 数值型
长度 8 30 20 20 8, 2
规则 主键 非空 非空 非空
中文说明 商品编码 商品名称 商品类别 规格型号 成本单价
Products 表记录举例:
ProductID 1 2 3 4
ProductName Chai Chang
Aniseed Syrup Chef Anton’s Gumbo Mix
…
…
14
Tofu
…
…
77
Escargots de Bourgogne
Category Beverages Condiments Condiments Beverages
Alfreds Futterkiste
ANATR
Ana Trujillo Emparedados y helados
ANTON Antonio Moreno Taqueria
AROUT
Around the Horn
Country Germany Mexico
City Berlin Mexico D.F.
…
Produce …
Seafood
QuantityPerUnit 10 boxes x 20 bags 24 – 12 oz bottles 12 – 550 ml bottles
36 boxes
…
40-100 g pkgs …
24 pieces
UnitPrice 18.20 19.50 10.25 21.35
2. 下列程序在单链表 head 上实现简单选择排序算法,其中调用函数 GetMinKey,试 在下列空白处填入正确语句。
typedef struct node{
int data; //数据域
struct node *next; //指针域
}linklist;
linklist GetMinKey(linklist r){
…
23.25 …
13.25
2.Customers 表结构:
列名
类型
长度
规则
CustomerID 字符型
5
CustomerName 字符型Βιβλιοθήκη 50Country
字符型
20
City
字符型
20
Address
字符型
80
主键 非空
Customers 表记录举例:
CustomerID
CustomerName
ALFKI
linklist minp; //minp 是较小值的指针
minp = r;
while(r->next!=null){
if (minp->data>r->next->data) minp = r->next;
r = r->next;
}
return minp; //返回较小值的指针
}
void SelectSort(linklist head){
日期型
ShippedDate
日期型
长度 8 5 8 8 8
规则 主键 非空,外键 非空
Orders 表记录举例:
OrderID
10248 10249 10250 10251
…
CustomerID
VINET TOMSP HANAR VINET
…
OrderDate
2009-07-04 2009-07-05 2009-08-08 2009-08-11
这里,data 为结点数值域,lch 为结点的左孩子,rch 为结点的右孩子。
2. 已知一个线性表以单链表结构存储,单链表的头指针为 head,结点结构定义如下: typedef struct node {
int data; //数值域 struct node *next; } lnode;
试将该单链表中所有的奇数排在所有偶数之前。要求时间复杂度尽可能地少,结果 仍放在原来的单链表中。
s->data=x;
if (t==null)
(9)
else{
p= (10) ;
while (p!=null) {
q=p;
if ( (11)
else p=p->rch;
}
if (
(12)
else q->rch=x;
}
return (t);
}
;
) p=p->lch; ) q->lch=x;
三、程序设计题(本题 30 分,任选 2 小题解答,每小题 15 分,按得分