数据结构期末考试题(1)

巡山小妖精
645次浏览
2020年08月03日 01:20
最佳经验
本文由作者推荐

关于书的格言-最新会计法



命题人:葛建梅 教研室主任(签字): 系主任签字: 日期:2008年12月5日
课程教研室
班级学号
软件

使用专业
考生姓名
计算机科学与技术(工、师)、软件工程
年级 07级
考试地点
————————¤—————¤———————————装订线—— ——————¤———————¤——————
大题得分

大题得分

北华大学计算机科学技术学院2008-2009学年第一学期
《 数据结构 》课程期末考试试卷( 1 )

题号 一 二 三 四 五 六 七 八 总分
得分
评卷人 核分:
一、填空题(每题2分,共 14分)
1. 下面程序段的时间复杂度是________。
for (i=1; i for (j=1; j B[i][j]=35;
2. 顺序队列在实现时,通常将数组看成是一个首尾相连的环,这样做的目的是为避免产生
____ _________现象。判断一个循环队列队满的条件是__________________(设
代表队头静态指针,代表队尾静态指针,Maxsize代表该循环队列的空间大小)。
3. 在一 个长度为n的顺序表中的第i个元素(1≤i≤n)之前插入一个元素时,需向后移动
________ _个元素。
4. 如果某二叉树的先序遍历序列为abcde,中序为badec,那么该二叉树的后序为________。
5. 一棵二叉树的第i (i≥1)层最多有_________________个结点;一棵深 度为k的满二叉树
共有_______________个非终端结点。
6. 已知一个有 向图的邻接矩阵表示,计算第i个结点出度的方法是__________________。
删除所有 以第i个结点为弧头的弧的方法是__________________________。
7. 在各种查找方法中,平均查找长度与结点个数n无关的查法方法是______________。
二、选择题 ( 每小题2分,共16分)

1. 数据结构是一门研究非数值计 算的程序设计问题中计算机的___①_____以及它们之间的
___②_____和操作等的学科。
① A.操作对象 B.计算方法 C. 逻辑存储 D.数据映像
② A. 结构 B.关系 C. 运算 D.算法
2. 一个栈的入栈序列是 a,b,c,d,e,则栈的不可能的输出序列是________。
A. abcde B. edcba C

. edabc D. cbade
第 1 页 共 5 页


























命题人:葛建梅 教研室主任(签字): 系主任签字: 日期:2008年12月5日
课程教研室
班级学号


使用专业
考生姓名

年级
考试地点


————————¤—— ———¤—————————装订线————————¤———————¤—————————

大题得分

1题得分

3. 带头结点的单链表L为不空的判定条件是

________。
A. L->next =null B. L = null


C. L! = null D. L->next != null



4. 判断下列叙述中哪个不正确


A. 将一棵树转换成二叉树后,根结点没有左子树;



B. 用二叉树的先序遍历和中序遍历可以导出后序遍历;


C. 一棵深度为K且有2
K
-1 个结点的二叉树称为满二叉树


D. 哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近

.

5.按二叉树的定义,具有3个结点的二叉树有

_____种形态
A. 3 B. 4 C. 5

D. 6
6.在一个具有n个顶点的无向图中,要连通全部顶点至少需要

________条边。
A.n B.n+l C.n-1


D.n/2
7.已知图G如下,求出该图的拓扑排序序列

_________________。

B

A D

E G
C


F H

A. CABDEFGH B. ABCDEFGH


C. ACBDEFGH D. ACBDFEHG


8.在待排序的元素序列基本有序的前提下,效率最高的排序方法是

________。

A. 插入排序 B. 选择排序

C. 快速排序 D. 归并排序
三、分析解答(1至4小题每题6分,5至6小题每题

8 分,共 40 分)
1.二维数组A的每个元素是由4个字符组成的串,行下标的范围从


0~9,列下标的范围是
从0~9,则存放A至少需要多少个字节,A

的第 3列和第7行共占多少个字节,若A按
行优先方式存储,元素A[6][3]的起始地址与当

A按列优先方式存储时的哪个元素的起始

地址一致。



第 2 页 共 5 页




命题人:葛建梅 教研室主任(签字): 系主任签字: 日期:2008年12月5日
课程教研室
班级学号



使用专业
考生姓名

年级
考试地点
———— ————¤—————¤—————————装订线————————¤———————¤————————

已知一棵树如下图,请将此树转化为对应的二叉树,画出转化后的二叉树及二叉链表。

2.
2题得分

3题得分

4题得分

5题得分

6题得分



A


B CDE

F G

3.

已知某系统在通信联络中出现的abcdef 六种字符,其频率为(13,12,35,15,9,16),

试构造一棵Huffman树,并写出每种字符的Huffman编码。



4

.已知关键字序列{503,17,512,908,897,275,170,653,426 },请给出采用希尔排

序法(d1=4,d2=2,d3=1)对该序列作升序排列时的每一趟的结果。



5.

已知AOE网如下,按关键路径算法:

(1) 找出其关键路径。 (2) 计算:Ve (v5)、 Vl (v3)

(3) 设弧称为活动a, 计算:e (a)和L(a)


V2
18

6
V3
11
8

V1
1
V4
12
24

25
5
V5
V8
V6
20

12
V7
5

6

.依据下列关键字序列{25,15,21,23,40,48,32,22}构成一棵二叉排序树。

(1)请画出此二叉排序树。

(2)若在二叉排序树中查找,则查找成功与查找不成功的平均查找长度分别是多少?


第 3 页 共 5 页










命题人:葛建梅 教研室主任(签字): 系主任签字: 日期:2008年12月5日
课程教研室
班级学号


使用专业
考生姓名

年级
考试地点

————————¤—————¤—— ———————装订线————————¤———————¤————————








大题得分

1题得分

2题得分




四、算法设计(每小题 10 分,共 30 分)

1. 某大学图书馆中有一批图书,按其价格从低到高的次序构成了一个单链表存于计算机中,

链表的每个结点指出同样价格书的数量,现在要清理书库,

将价格为C元的图书清出 库,
即从单链表中删除价格为C元的结点。单链表存储结构与按此存储结构的算法如下,请


在空格上填写适当的语句,完成该算法。


typedef struct LNode

{ float cost;

int num;


Struct LNode *next;

} LNode, *LinkList;

void Delbooks ( LinkList &L, float c)

{ q=L; p=q->next;


while ( ① && p !=null )

{ q=p; p=p->next; }
if ( p!=null )

{ ②


③ } }

2. 设二叉树采用二叉链表存储结构,PrintElement

是对数据元素打印输出的应用函 数。下面
算法是用类C语言描述的,实现了按中序遍历二叉树

T的递归算法,对每个 数据元素调
用函数PrintElement输出该结点的值。请在空格上填写适当的语句,完成该算法 。



typedef struct BiTNode

{ char data;

struct BitNode *Lchild, * Rchild;


} BitNode, *BiTree;

第 4 页 共 5 页








命题人:葛建梅 教研室主任(签字): 系主任签字: 日期:2008年12月5日
课程教研室
班级学号


使用专业
考生姓名

年级
考试地点

————————¤—————¤—————————装订线————————¤————— ——¤—————————

3题得分

Status InOrderTraverse ( BiTree T)

{ if ( ① )


{ if ( InOrderTraverse ( T->Lchild ))

if ( ②

)
if ( ③

) return OK;

return ERROR

}

else return Ok;


}

Status PrintElement ( char e )

{ ④


return Ok }


3.假设图采用邻接表存储表示,设计一个广度优先遍历算法。图与队列的存储结构如下,

请依据此存储结构用类C语言编写算法。


#define MAX_VERTEX_NUM 20

void BFSTraverse(ALGraph G,Status(*Visit)(int v)) {
typedef struct ArcNode


{ int adjvex;

struct ArcNode *nextarc;
}ArcNode;

typedef struct VNode

{ Vertextype data;

ArcNode *firstarc;
}VNode, AdjList[MAX_VERTEX_NUM];
typedef struct
{ AdjList vertices;
int vexnum, arcnum;
}ALGraph;
#define MAXQSIZE 100
typedef struct
{ int *base;
int front;
int rear;

}SqQueue;
第 5 页 共 5 页












命题人:葛建梅 教研室主任(签字): 系主任签字: 日期:2008年12月5日
课程教研室
班级学号
软件

使用专业
考生姓名
计算机科学与技术(工、师)、软件工程
年级 07级
考试地点
————————¤—————¤———————————装订线—— ——————¤———————¤——————
大题得分

大题得分

北华大学计算机科学技术学院2008-2009学年第一学期
《 数据结构 》课程期末考试试卷( 1 )

题号 一 二 三 四 五 六 七 八 总分
得分
评卷人 核分:
一、填空题(每题2分,共 14分)
1. 下面程序段的时间复杂度是________。
for (i=1; i for (j=1; j B[i][j]=35;
2. 顺序队列在实现时,通常将数组看成是一个首尾相连的环,这样做的目的是为避免产生
____ _________现象。判断一个循环队列队满的条件是__________________(设
代表队头静态指针,代表队尾静态指针,Maxsize代表该循环队列的空间大小)。
3. 在一 个长度为n的顺序表中的第i个元素(1≤i≤n)之前插入一个元素时,需向后移动
________ _个元素。
4. 如果某二叉树的先序遍历序列为abcde,中序为badec,那么该二叉树的后序为________。
5. 一棵二叉树的第i (i≥1)层最多有_________________个结点;一棵深 度为k的满二叉树
共有_______________个非终端结点。
6. 已知一个有 向图的邻接矩阵表示,计算第i个结点出度的方法是__________________。
删除所有 以第i个结点为弧头的弧的方法是__________________________。
7. 在各种查找方法中,平均查找长度与结点个数n无关的查法方法是______________。
二、选择题 ( 每小题2分,共16分)

1. 数据结构是一门研究非数值计 算的程序设计问题中计算机的___①_____以及它们之间的
___②_____和操作等的学科。
① A.操作对象 B.计算方法 C. 逻辑存储 D.数据映像
② A. 结构 B.关系 C. 运算 D.算法
2. 一个栈的入栈序列是 a,b,c,d,e,则栈的不可能的输出序列是________。
A. abcde B. edcba C

. edabc D. cbade
第 1 页 共 5 页


























命题人:葛建梅 教研室主任(签字): 系主任签字: 日期:2008年12月5日
课程教研室
班级学号


使用专业
考生姓名

年级
考试地点


————————¤—— ———¤—————————装订线————————¤———————¤—————————

大题得分

1题得分

3. 带头结点的单链表L为不空的判定条件是

________。
A. L->next =null B. L = null


C. L! = null D. L->next != null



4. 判断下列叙述中哪个不正确


A. 将一棵树转换成二叉树后,根结点没有左子树;



B. 用二叉树的先序遍历和中序遍历可以导出后序遍历;


C. 一棵深度为K且有2
K
-1 个结点的二叉树称为满二叉树


D. 哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近

.

5.按二叉树的定义,具有3个结点的二叉树有

_____种形态
A. 3 B. 4 C. 5

D. 6
6.在一个具有n个顶点的无向图中,要连通全部顶点至少需要

________条边。
A.n B.n+l C.n-1


D.n/2
7.已知图G如下,求出该图的拓扑排序序列

_________________。

B

A D

E G
C


F H

A. CABDEFGH B. ABCDEFGH


C. ACBDEFGH D. ACBDFEHG


8.在待排序的元素序列基本有序的前提下,效率最高的排序方法是

________。

A. 插入排序 B. 选择排序

C. 快速排序 D. 归并排序
三、分析解答(1至4小题每题6分,5至6小题每题

8 分,共 40 分)
1.二维数组A的每个元素是由4个字符组成的串,行下标的范围从


0~9,列下标的范围是
从0~9,则存放A至少需要多少个字节,A

的第 3列和第7行共占多少个字节,若A按
行优先方式存储,元素A[6][3]的起始地址与当

A按列优先方式存储时的哪个元素的起始

地址一致。



第 2 页 共 5 页




命题人:葛建梅 教研室主任(签字): 系主任签字: 日期:2008年12月5日
课程教研室
班级学号



使用专业
考生姓名

年级
考试地点
———— ————¤—————¤—————————装订线————————¤———————¤————————

已知一棵树如下图,请将此树转化为对应的二叉树,画出转化后的二叉树及二叉链表。

2.
2题得分

3题得分

4题得分

5题得分

6题得分



A


B CDE

F G

3.

已知某系统在通信联络中出现的abcdef 六种字符,其频率为(13,12,35,15,9,16),

试构造一棵Huffman树,并写出每种字符的Huffman编码。



4

.已知关键字序列{503,17,512,908,897,275,170,653,426 },请给出采用希尔排

序法(d1=4,d2=2,d3=1)对该序列作升序排列时的每一趟的结果。



5.

已知AOE网如下,按关键路径算法:

(1) 找出其关键路径。 (2) 计算:Ve (v5)、 Vl (v3)

(3) 设弧称为活动a, 计算:e (a)和L(a)


V2
18

6
V3
11
8

V1
1
V4
12
24

25
5
V5
V8
V6
20

12
V7
5

6

.依据下列关键字序列{25,15,21,23,40,48,32,22}构成一棵二叉排序树。

(1)请画出此二叉排序树。

(2)若在二叉排序树中查找,则查找成功与查找不成功的平均查找长度分别是多少?


第 3 页 共 5 页










命题人:葛建梅 教研室主任(签字): 系主任签字: 日期:2008年12月5日
课程教研室
班级学号


使用专业
考生姓名

年级
考试地点

————————¤—————¤—— ———————装订线————————¤———————¤————————








大题得分

1题得分

2题得分




四、算法设计(每小题 10 分,共 30 分)

1. 某大学图书馆中有一批图书,按其价格从低到高的次序构成了一个单链表存于计算机中,

链表的每个结点指出同样价格书的数量,现在要清理书库,

将价格为C元的图书清出 库,
即从单链表中删除价格为C元的结点。单链表存储结构与按此存储结构的算法如下,请


在空格上填写适当的语句,完成该算法。


typedef struct LNode

{ float cost;

int num;


Struct LNode *next;

} LNode, *LinkList;

void Delbooks ( LinkList &L, float c)

{ q=L; p=q->next;


while ( ① && p !=null )

{ q=p; p=p->next; }
if ( p!=null )

{ ②


③ } }

2. 设二叉树采用二叉链表存储结构,PrintElement

是对数据元素打印输出的应用函 数。下面
算法是用类C语言描述的,实现了按中序遍历二叉树

T的递归算法,对每个 数据元素调
用函数PrintElement输出该结点的值。请在空格上填写适当的语句,完成该算法 。



typedef struct BiTNode

{ char data;

struct BitNode *Lchild, * Rchild;


} BitNode, *BiTree;

第 4 页 共 5 页








命题人:葛建梅 教研室主任(签字): 系主任签字: 日期:2008年12月5日
课程教研室
班级学号


使用专业
考生姓名

年级
考试地点

————————¤—————¤—————————装订线————————¤————— ——¤—————————

3题得分

Status InOrderTraverse ( BiTree T)

{ if ( ① )


{ if ( InOrderTraverse ( T->Lchild ))

if ( ②

)
if ( ③

) return OK;

return ERROR

}

else return Ok;


}

Status PrintElement ( char e )

{ ④


return Ok }


3.假设图采用邻接表存储表示,设计一个广度优先遍历算法。图与队列的存储结构如下,

请依据此存储结构用类C语言编写算法。


#define MAX_VERTEX_NUM 20

void BFSTraverse(ALGraph G,Status(*Visit)(int v)) {
typedef struct ArcNode


{ int adjvex;

struct ArcNode *nextarc;
}ArcNode;

typedef struct VNode

{ Vertextype data;

ArcNode *firstarc;
}VNode, AdjList[MAX_VERTEX_NUM];
typedef struct
{ AdjList vertices;
int vexnum, arcnum;
}ALGraph;
#define MAXQSIZE 100
typedef struct
{ int *base;
int front;
int rear;

}SqQueue;
第 5 页 共 5 页










陵川凤凰欢乐谷-温馨提示模板


开学随笔-高三决心书


房地产可行性研究报告范文-新生发言稿


奥运会的比赛项目-家长会学生代表发言稿


护士执业注册申请审核表-文明礼仪歌谣


野鸡大学是什么意思-五年级上册英语试卷


辽宁师范大学招生办-初中数学教学工作总结


山东省教育厅人事处-活动工作总结怎么写