数据结构参考答案
更新时间:2023-12-23 22:25:01 阅读量: 教育文库 文档下载
助人教育QQ:707223565
数据结构试题
一、单项选择题
1.数据结构是( D )
A.一种数据类型 B.数据的存储结构
C.一组性质相同的数据元素的集合 D.相互之间存在一种或多种特定关系的数据元素的集合 2.算法分析的目的是( B )
A.辨别数据结构的合理性 B.评价算法的效率 C.研究算法中输入与输出的关系 D.鉴别算法的可读性
3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是( D ) A.插入 C.排序
B.删除 D.定位
4.二维数组A[8][9]按行优先顺序存储,若数组元素A[2][3]的存储地址为1087,A[4][7]的存储地址为1153,则数组元素A[6][7]的存储地址为( A ) A.1207 C.1211
B.1209 D.1213
5.在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系( A ) A.不一定相同 C.都不相同
B.都相同 D.互为逆序
6.若采用孩子兄弟链表作为树的存储结构,则树的后序遍历应采用二叉树的( C ) A.层次遍历算法 C.中序遍历算法
B.前序遍历算法 D.后序遍历算法
7.若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为( A ) A.图中每个顶点的入度 C.图中弧的条数
B.图中每个顶点的出度 D.图中连通分量的数目
8.图的邻接矩阵表示法适用于表示( C ) A.无向图 C.稠密图
B.有向图 D.稀疏图
9.在对n个关键字进行直接选择排序的过程中,每一趟都要从无序区选出最小关键字元素,则在进行第i趟排序之前,无序区中关键字元素的个数为( D ) A.i C.n-i
B.i+1 D.n-i+1
1
10.下列排序算法中,其时间复杂度和记录的初始排列无关的是( B )
A.插入排序 B.堆排序 C.快速排序 D.冒泡排序
11.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行比较的关键字依次为( A )
A.f,c,b B.f,d,b C.g,c,b
D.g,d,b
12.若在文件中查询年龄在60岁以上的男性及年龄在55岁以上的女性的所有记录,则查询条件为( C ) A.(性别=“男”)OR(年龄> 60)OR(性别=“女”)OR(年龄>55) B.(性别=“男”)OR(年龄> 60)AND(性别=“女”)OR(年龄>55) C.(性别=“男”)AND(年龄> 60)OR(性别=“女”)AND(年龄>55) D.(性别=“男”)AND(年龄> 60)AND(性别=“女”)AND(年龄>55) 13.设单链表中结点的结构为
typedef struct node { //链表结点定义 ElemType data; //数据
struct node * Link; //结点后继指针 } ListNode;
(1)已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作?B A. s->link = p; p->link = s; B. s->link = p->link; p->link = s; C. s->link = p->link; p = s; D. p->link = s; s->link = p;
(2)非空的循环单链表first的尾结点(由p所指向)满足:C A. p->link == NULL; B. p == NULL; C. p->link == first; D. p == first;
二、填空题
14.称算法的时间复杂度为O(f(n)),其含义是指算法的执行时间和__ f(n)_____的数量级相同。 15.在一个长度为n的单链表L中,删除链表中*p的前驱结点的时间复杂度为__ O(1)_______。 17.一棵含999个结点的完全二叉树的深度为__10_____。 18.含n个顶点的无向连通图中至少含有__n-1_____条边。
19.对表长为9000的索引顺序表进行分块查找,假设每一块的长度均为15,且以顺序查找确定块,则在
各记录的查找概率均相等的情况下,其查找成功的平均查找长度为_308.5_____。
20.若对关键字序列(43,02,80,48,26,57,15,73,21,24,66)进行一趟增量为3的希尔排序,
则得到的结果为_(15 02 21 24 26 57 43 66 81 48 73)_。
2
三、解答题
21.已知二叉树的先序序列和中序序列分别为HDACBGFE和ADCBHFEG。 (1)画出该二叉树;
(2)画出与(1)求得的二叉树对应的森林。
把二叉树转换到树和森林自然的方式是:若结点x是双亲y的左孩子,则把x的右孩子,右孩子的右孩子,…,都与y用连线连起来,最后去掉所有双亲到右孩子的连线
22.已知带权图的邻接表如下所示,其中边表结点的结构为: 依此邻接表从顶点C出发进行深度优先遍历。 (1)画出由此得到的深度优先生成树;
(2)写出遍历过程中得到的从顶点C到其它
各顶点的带权路径及其长度。
23.从空树起,依次插入关键字37,50,42,18,48,12,56,30,23,构造一棵二叉排序树。 (1)画出该二叉排序树;
(2)画出从(1)所得树中删除关键字为37的结点之后的二叉排序树。
3
四、算法阅读题
24.已知用有序链表存储整数集合的元素。阅读算法f30,并回答下列问题:
(1)写出执行f30(a,b)的返回值,其中a和b分别为指向存储集合{2,4,5,7,9,12}和{2,4,5,7,9}的链表的头指针; 返回值为0
(2)简述算法f30的功能; 判断两个有序整数集合的链表是否相同(结点个数相同,对应结点的值相同)若相同,返回1,反之,返回0
(3)写出算法f30的时间复杂度。 O(n)
int f30(LinkList ha,LinkList hb)
{ //LinkList是带有头结点的单链表
//ha和hb分别为指向存储两个有序整数集合的链表的头指针 LinkList pa,pb; pa=ha->next;
pb=hb->next;
while(pa && pb && pa->data==pb->data) ==的优先级高于&& { pa=pa->next;
pb=pb->next;
}
if(pa==NULL && pb==NULL) return 1;
else return 0;
}
25.已知稀疏矩阵采用带行表的三元组表表示,其形式说明如下:
#define MaxRow 100 typedef struct {
//行号、列号、元素值
//稀疏矩阵的最大行数
int i,j,v;
}TriTupleNode;
typedef struct{
TriTupleNode data[MaxSize]; int RowTab[MaxRow+1]; int m,n,t;
//行表
//矩阵的行数、列数和非零元个数
}RTriTupleTable;
下列算法f31的功能是,以行优先的顺序输入稀疏矩阵的非零元(行号、列号、元素值),建立稀疏矩阵的带行表的三元组表存储结构。请在空缺处填入合适内容,使其成为一个完整的算法。(注:矩阵的行、列下标均从1起计)
void f31(RTriTupleTable *R)
4
{ int i,k;
scanf(″%d %d %d″,&R->m,&R->n,&R->t); R->RowTab[1]=0;
k=1; //k指示当前输入的非零元的行号 for(i=0; ① ;i++) i { scanf(″%d %d %d″, ②&R→data[i].i , &R→data[i].j ③ ,&R->data[i].v); while(k 26.已知二叉树的存储结构为二叉链表,其类型定义如下: typedef struct NodeType { DataType data; struct NodeType *lchild,*rchild; }BinTNode,*BinTree; 阅读算法F32,并回答下列问题: (1)对于如图所示的二叉树,画出执行算法f32的结果; (2)简述算法f32的功能。 BinTree f32(BinTree bt1) { BinTree bt2; if(bt1==NULL) bt2=NULL; else { bt2=(BinTNode *)malloc(sizeof(BinTNode)); bt2->data=bt1->data; bt2->rchild=f32(bt1->lchild); bt2->lchild=f32(bt1->rchild); } 5 return bt2; } 27.假设有向图采用邻接表表示法,其定义如下: typedef struct { VertexNode adjlist[MaxVertexNum]; int n,e; //图的当前顶点数和弧数 } ALGraph; //邻接表类型 其中顶点表结点VertexNode结构为: 边表结点EdgeNode结构为: vertex firstedge adjvex next 下列算法f33的功能是,对以邻接表表示的有向图进行拓扑排序。 (1)阅读算法f33,并在空缺处填入合适的内容, 使其成为一个完整的算法; (2)对于如图所示的邻接表,将执行算法f33后 的topo[ ]结果填入给定的数组中。 void f33(ALGraph G, int topo [ ]) { int i,j,k,count=0; int indegree[MaxVertexNum]; EdgeNode *p; //p为指向边表结点的指针 Queue Q; //Q为队列 FindIndegree(G, indegree); //求各顶点的入度,并置于入度向量indegree InitQueue(&Q); //初始化队列 for(i=0;i if(!indegree[i]) EnQueue(&Q,i); //如果顶点入度为0,则EnQueue(&Q,i)进入队列 while(!QueueEmpty(&Q)) { j= ① ; DeQueue(&Q) 删除队列顶点 topo[j]=++count; for(p=G.adjlist[j].firstedge;p;p=->next) { k=p->adjvex; if(!(--indegree[k])) ② ; EnQueue(&Q.k) } 6 } if(count 0 1 2 3 4 5 6 7 五、算法设计题 28.假设以带头结点的单链表表示有序表,单链表的类型定义如下: typedef struct node{ DataType data; struct node *next }LinkNode, *LinkList; 编写算法,从有序表A中删除所有和有序表B中元素相同的结点。 此算法OK! 29、设带表头结点的双向链表的定义为 typedef int ElemType; typedef struct dnode { //双向链表结点定义 ElemType data; //数据 struct dnode * lLink, * rLink; //结点前驱与后继指针 DblNode; typedef DblNode * DblList; //双向链表 试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左 链域lLink把所有结点按照其值从小到大的顺序连接起来。 void sort ( DblNode * L ) { DblNode * s = L->rlink; //指针s指向待插入结点, 初始时指向第一个结点 7 while ( s != NULL ) { //处理所有结点 pre = L; p = L->lLink; //指针p指向待比较的结点, pre是p的前驱指针 while ( p != NULL && s->data < p->data ) //循lLink链寻找结点 *s的插入位置 { pre = p; p = p->lLink; } pre->lLink = s; s->lLink = p; s = s->rLink; //结点 *s在lLink方向插入到 *pre与 *p之间 } pre = L; p = L->rLink; //指针p指向待比较的结点, pre是p的前驱指针 while ( p != NULL && s->data < p->data ) //循lLink链寻找结点 *s的插入位置 { pre = p; p = p->lLink; } pre->lLink = s; s->lLink = p; s = s->rLink; //结点 *s在lLink方向插入到 *pre与 *p之间 } 8
正在阅读:
数据结构参考答案12-23
村民道德评议会规程10-07
matlab中所有函数解析 - 太全了05-30
杭州江南实验学校初二年级2006学年第二学期期中总结大07-21
2015-2020年中国通用设备制造市场调研及投资战略咨询报告08-31
张维迎:中国市场化改革的下一步05-24
事故应急救援预案编制与实施-光华课程07-06
宪法知识竞赛题目410道05-24
金湖县典型乡镇饮用水源地调查与评估报告11-23
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 数据结构
- 答案
- 参考
- 银行承兑汇票的签发步骤与具体账务处理
- 离退休人员返聘管理规定33
- 第十七章肝的生物化学教案
- 数据结构试题及答案
- 废旧轮胎回收利用现状和利用途径w
- 孔子的君子之道-精选文档
- 中层干部管理培训心得体会
- 毕业设计论文:基于单片机的无线风扇遥控系统设计与实现 - 图文
- 浙江省东奥2016年会计从业继续教育试题答案(真题)
- 新集一矿毕业设计说明书(全) - 图文
- 人工挖孔桩基础作业指导书
- 6.花瓣飘香教案设计
- 教师招聘考试面试试题精选4
- 山东省威海市2011-2012学年高一上学期期末考试地理试题 - 图文
- ERP系统的切换
- 河北省医疗器械商店名录1276家
- 百年一遇关于学英语的超级猛帖(全部资料)
- 论加强劳动纪律
- 推荐下载 乡镇上半年十百千万干部下基层驻农村工作情况汇报-最新
- 北工商翻硕(MTI)考研复试辅导班求推荐个权威一点的