数据结构复习题.docx
- 文档编号:3500563
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:11
- 大小:32.31KB
数据结构复习题.docx
《数据结构复习题.docx》由会员分享,可在线阅读,更多相关《数据结构复习题.docx(11页珍藏版)》请在冰豆网上搜索。
数据结构复习题
一、 单选题
1、一维数组A采用顺序存储结构,每个元素占用6个字节,第6个元素的存储地址为100,则该数组的首地址是( )。
A、 64
B、 28
C、 70
D、 90
答案:
C
2、下述几种排序方法中,平均情况下占用内存量最大的是( )方法。
A、插入排序
B、选择排序
C、快速排序
D、归并排序
答案:
D
3、在数据结构中,从逻辑上可以把数据结构分为( )。
A、 动态结构和静态结构
B、 紧凑结构和非紧凑结构
C、 线性结构和非线性结构
D、 内部结构和外部机构
答案:
C
4、在一个有像图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍。
A、 邻接矩阵表示法
B、 邻接表表示法
C、 逆邻接表表示法
D、 邻接表和逆邻接表
答案:
B
5、采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。
A、 n
B、 n/2
C、(n+1)/2
D、(n-1)/2
答案:
C
6、一个存储结点存储一个( )。
A、 数据项
B、 数据元素
C、 数据结构
D、 数据类型
答案:
B
7、对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则所有顶点邻接表中的结点总数为( )。
A、n
B、e
C、2n
D、2e
答案:
D
8、 一个顺序表第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的地址是( )。
A、 98
B、 100
C、 102
D、 106
答案:
B
9、常对数组进行的两种基本操作是( )。
A、 建立与删除
B、 索引和修改
C、 查找和修改
D、 查找与索引
答案:
C
10、在实际应用中,要输入多个字符串,且长度无法预定。
则应该采用( )存储比较合适。
A、链式
B、顺序
C、堆结构
D、无法确定
答案:
A
11、在下列排序方法中,关键字比较的次数与记录的初始排列秩序无关的是( )。
A、希尔排序
B、冒泡排序
C、插入排序
D、选择排序
答案:
D
12、在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个( )结构。
A、 堆栈
B、 队列
C、 数组
D、 线性表
答案:
B
13、向顺序栈中压入新元素时,应当( )。
A、 先移动栈顶指针,再存入元素
B、 先存入元素,再移动栈顶指针
C、 先后次序无关紧要
D、 同时进行
答案:
A
14、哈希函数有一个共同的性质,即函数值应当以( )取其值域的每个值。
A、 最大概率
B、 最小概率
C、 平均概率
D、 同等概率
答案:
D
15、算法分析的目的是( )。
A、 找出数据结构的合理性
B、 研究算法中的输入和输出的关系
C、 分析算法的效率以求改进分析算法的易懂性和文档性
D、 分析算法的易懂性和文档性
答案:
C
16、设二维数组A[5][6]按行优先顺序存储在内存中,已知A[0][0]起始地址为1000,每个数组元素占用5个存储单元,则元素A[4][4]的地址为( )。
A、 1140
B、 1145
C、 1120
D、 1125
答案:
A
17、在正常情况下,冒泡排序的时间复杂度为( )。
A、 O(log2n)
B、 O(n)
C、O(nlog2n)
D、O(n2)
答案:
D
18、在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删结点的值,则执行( )。
A、 x=top;top=top->next;
B、x=top->data;
C、 top=top->next;x=top->data;
D、 x=top->data;top=top->next;
答案:
B
19、以下陈述中正确的是( )。
A、 串是一种特殊的线性表
B、 串的长度必须大于零
C、 串中元素只能是字母
D、 空串就是空白串
答案:
A
20、设有一个20阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a9,2在一维数组B中的下标是( )
A、 41
B、 32
C、 18
D、 38
答案:
D
二、 填空题
1、将树中结点赋上一个有着某种意义的实数,称此实数为该结点的 。
答案:
权
2、分块查找又称为 ,它是一种介于顺序查找和折半查找之间的查找方法。
答案:
索引顺序查找
3、每个结点只包含一个指针域的线性表叫 。
答案:
单链表
4、在一个单链表中p所指结点之后插入一个s所指结点时,应执行_____和p->next=s;的操作。
答案:
s->next=p->next
5、栈是限定在表的一端进行插入和删除操作的线性表,又称为 。
答案:
后进先出表
6、在队列的顺序存储结构中,当插入一个新的队列元素时,尾指针 ,当删除一个元素队列时,头指针 。
答案:
增1 增1
7、假设以S和X分别表示入栈和出栈操作,则对输入序列a,b,c,d,e一系列栈操作SSXSXSSXXX之后,得到的输出序列为 。
答案:
bceda
8、空串的长度是 。
答案:
0
9、在一个链队中,设f和r分别为队头和队尾指针,则删除一个结点的操作为________。
(结点的指针域为next)
答案:
f=f->next
10、在有序表A[1….18]中,采用二分查找算法查找元素值等于A[17]的元素,所比较过的元素的下标依次是 。
答案:
9, 14, 16 ,17
11、在对一组记录(50,40,95,20,15,70,60,45,80)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需要比较 次。
答案:
3
12、向一个栈顶指针为h的链栈中插入一个s所指结点时,可执行________和h=s;操作。
(结点的指针域为next)
答案:
s->next=h
13、树中度等于0的结点称作 或 。
答案:
叶子结点 终端结点
14、广义表A((a,b,c),(d,e,f))的表尾为 。
答案:
((d,e,f))
15、具有m个叶子结点的哈夫曼树共有 结点。
答案:
2m-1
三、 简答题
1、头指针、头结点、第一个结点(或称首元结点)的区别是什么?
答案:
头结点是在链表的开始结点之前附加的一个结点;第一个结点(或称首元结点)是链表中存储第一个数据元素的结点;头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针。
2、已知某二叉树的先序遍历结果是:
A,B,D,G,C,E,H,L,I,K,M,F和J,它的中序遍历结果是:
G,D,B,A,L,H,E,K,I,M,C,F和J,请画出这棵二叉树,并写出该二叉树后续遍历的结果。
答案:
(1)二叉树图形表示如下:
(2)该二叉树后序遍历的结果是:
G、D、B、L、H、K、M、I、E、J、F、C和A。
四、 资料题
1、下列是在具有头结点单向列表中删除第i个结点,请在空格内填上适当的语句。
intdelete(NODE*head,inti)
{
NODE*p,*q;
intj;
q=head;
j=0;
while((q!
=NULL)&&(j找到要删除结点的直接前驱,并使q指向它*/
{
q=q->next;
j++;
}
if(q==NULL)
return(0);
(1) ;
(2) ;
free(p);
return
(1);
}
答案:
第1空:
p=q->next
第2空:
q->next=p->next
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习题