数据结构复习题答案Word下载.docx
- 文档编号:22744533
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:21
- 大小:26.11KB
数据结构复习题答案Word下载.docx
《数据结构复习题答案Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构复习题答案Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
while(i=n)
i=2*i;
②
其中语句①的执行次数是1,设语句②的执行次数为f(n),则有:
2f(n)?
n。
得:
t(n)=o(log2n)
【例1-4】有如下递归函数fact(n),分析其时间复杂度。
fact(intn)
{if(n=1)
return
(1);
else
return(n*fact(n-1));
②
设fact(n)的运行时间函数是t(n)。
该函数中语句①的运行时间是o
(1),语句②的运行时间是t(n-1)+o
(1),其中o
(1)为常量运行时间。
由此可得fact(n)的时间复杂度为o(n)。
习题1
一、单项选择题
1.数据结构是指(1.a)。
a.数据元素的组织形式b.数据类型
c.数据存储结构d.数据定义
2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(2.c)。
a.存储结构b.逻辑结构
c.链式存储结构d.顺序存储结构
3.树形结构是数据元素之间存在一种(3.d)。
a.一对一关系b.多对多关系
c.多对一关系d.一对多关系
4.设语句x++的时间是单位时间,则以下语句的时间复杂度为(4.b)。
for(i=1;
i=n;
i++)
for(j=i;
j=n;
j++)
x++;
a.o
(1)b.o(n)2c.o(n)d.o(n)3
5.算法分析的目的是(5.c、),算法分析的两个主要方面是(a)。
(1)a.找出数据结构的合理性b.研究算法中的输入和输出关系
c.分析算法的效率以求改进d.分析算法的易懂性和文档性
(2)a.空间复杂度和时间复杂度b.正确性和简明性
c.可读性和文档性d.数据复杂性和程序复杂性
6.计算机算法指的是(6.c、),它具备输入,输出和(b)等五个特性。
(1)a.计算方法b.排序方法
c.解决问题的有限运算序列d.调度方法
(2)a.可行性,可移植性和可扩充性b.可行性,确定性和有穷性
c.确定性,有穷性和稳定性d.易读性,稳定性和安全性
7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要(7.b)。
a.低b.高c.相同d.不好说
8.数据结构作为一门独立的课程出现是在(8.d)年。
a.1946b.1953c.1964d.1968
9.数据结构只是研究数据的逻辑结构和物理结构,这种观点(9.b)。
a.正确b.错误
c.前半句对,后半句错d.前半句错,后半句对
10.计算机内部数据处理的基本单位是(10.b)。
a.数据b.数据元素c.数据项d.数据库
二、填空题
1.数据结构按逻辑结构可分为两大类,分别是______________和_________________。
1.线性结构,非线性结构
2.数据的逻辑结构有四种基本形态,分别是________________、__________________、__________________和__________________。
2.集合,线性,树,图
3.线性结构反映结点间的逻辑关系是__________________的,非线性结构反映结点间的逻辑关系是__________________的。
3.一对一,一对多或多对多
4.一个算法的效率可分为__________________效率和__________________效率。
4.时间,空间
5.在树型结构中,树根结点没有__________________结点,其余每个结点的有且只有__________________个前趋驱结点;
叶子结点没有__________________结点;
其余每个结点的后续结点可以__________________。
5.前趋,一,后继,多
6.在图型结构中,每个结点的前趋结点数和后续结点数可以__________________。
6.有多个
7.线性结构中元素之间存在__________________关系;
树型结构中元素之间存在__________________关系;
图型结构中元素之间存在__________________关系。
7.一对一,一对多,多对多
8.下面程序段的时间复杂度是__________________。
8.o(n)
jn;
2
9.下面程序段的时间复杂度是__________________。
9.o(n)
s+=i;
10.下面程序段的时间复杂度是__________________。
10.o(n)2
s=0;
s+=b[i][j];
sum=s;
11.下面程序段的时间复杂度是__________________。
11.o(log3n)
i=i*3;
12.衡量算法正确性的标准通常是__________________________。
12.程序对于精心设计的典型合法数据输入能得出符合要求的结果。
13.算法时间复杂度的分析通常有两种方法,即___________和___________的方法,通常我们对算法求时间复杂度时,采用后一种方法。
13.事后统计,事前估计
三、求下列程序段的时间复杂度。
1.x=0;
for(j=i+1;
j=n;
1.o(n)
2.x=0;
for(j=1;
j=n-i;
2.o(n)2
3.inti,j,k;
{c[i][j]=0;
for(k=0;
kn;
k++)
c[i][j]=a[i][k]*b[k][j]
3.o(n)3
4.i=n-1;
while((i=0)a[i]!
=k))
j--;
return(i);
4.o(n)
5.fact(n)
return
(1);
return(n*fact(n-1));
5.o(n)
第2章线性表【例2-1】试编写出将两个顺序存储的有序表a和b合成一个有序表c的算法。
假设a、b和c的类型为下述sqlist类型:
#definemaxlen1000
typedefintelemtype
typedefstruct
{elemtypeelem[maxlen];
intlen;
}sqlist;
设a和b的数据元素均为整数且为升序排列,设a的长度为m,b的长度为n,则合并后c的长度为m+n。
合并时进行a、b元素的比较,将较小的链入c中,算法描述如下:
intmerge(sqlist*a,sqlist*b,sqlist*c)//将两个有序表a和b合成一个有序表c
{intm,n,i,j,k;
m=(*a).len;
n=(*b).len;
if(m+nmaxlen-1)
{printf(overflow);
exit(0);
i=0;
j=0;
//i和j分别作为扫描顺序表a和b的指针
k=0;
//k指示顺序表c中当前位置
while((i=m)(j=n))
if((*a).elem[i]=(*b).elem[j])
{(*c).elem[k]=(*a)elem[i];
i++;
k++;
{(*c).elem[k]=(*b)elem[j];
j++;
while(i=m)//表b已结束,表a没有结束,链入表a的剩余部分
{(*c).elem[k]=(*a).elem[i];
k++;
【篇二:
2013年数据结构试题集(10套题并附带答案)】
3-6-17
数据结构模拟题
数据结构试卷
(一)
一、单选题
1、栈和队列的共同特点是(a)。
a、只允许在端点处插入和删除元素b、都是先进后出c、都是先进先出d、没有共同点2、用无头结点链接方式存储的队列,在进行插入运算时(d).
a.仅修改头指针b、头、尾指针都要修改c.仅修改尾指针d、头、尾指针可能都要修改3、以下数据结构中哪一个是非线性结构?
(d)
a、队列b、栈c、线性表d、二叉树4、设有一个二维数组a[m][n],假设a[0][0]存放位置在644(10),a[2][2]存放位置在676(10)每个元素占一个空间,问a[3][3](10)存放在什么位置?
脚注(10)表示用10进制表示。
(c)a、688b、678c、692d、6965、树最适合用来表示(c)。
a.有序数据元素b.无序数据元素c.元素之间具有分支层次关系的数据d.元素之间无联系的数据
6、二叉树的第k层的结点数最多为(d).
kkk-1k-1
a、2-1b、2+1c、2+1d、2
7、若有18个元素的有序表存放在一维数组a[19]中,第一个元素放a[1]中,现进行二分查找,则查找a[3]的比较序列的下标依次为(d)
a、1,2,3b、9,5,2,3c、9,5,3d、9,4,2,38、对n个记录的文件进行快速排序,所需要的辅助存储空间大致为(c)
a.o
(1)b.o(n)c.o(1og2n)d.o(n)
9、对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用h(k)=k%9作为散列函数,则散列地址为1的元素有(d)个,
a、1b、2c、3d、4
10、设有6个结点的无向图,该图至少应有(a)条边才能确保是一个连通图。
a、5b、6c、7d、8
1.通常从四个方面评价算法的质量:
(正确性)、(可读性)、(健壮性)和(效率与低存储
量)。
322
2.一个算法的时间复杂度为(n+nlog2n+14n)/n,其数量级表示为(o(n))。
3.假定一棵树的广义表表示为a(c,d(e,f,g),h(i,j)),则树中所含的结点数为
(9)个,树的深度为(3),树的度为(3)。
4.后缀算式923+-102/-的值为(-1)。
中缀算式(3+4x)-2y/3对应的后缀算式
为(34x*+2y*3/-)。
5.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指
针。
在这种存储结构中,n个结点的二叉树共有(2n)个指针域,其中有(n-1)个指针域是存放了地址,有(n+1)个指针是空指针。
6.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点
分别有(e)个和(2e)个。
7.aov网是一种(有向无回路)的图。
8.在一个具有n个顶点的无向完全图中,包含有(n(n-1)/2)条边,在一个具有n个顶
点的有向完全图中,包含有(n(n-1))条边。
9.假定一个线性表为(12,23,74,55,63,40),若按key%4条件进行划分,使得同一余数
的元素成为一个子表,则得到的四个子表分别为(12,40)、(74)、(23,55,63)和()。
10.向一棵b_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度(增
加1)。
11.在堆排序的过程中,对任一分支结点进行筛选运算的时间复杂度为(o(log2n)),整个
堆排序过程的时间复杂度为(o(nlog2n))。
12.在快速排序、堆排序、归并排序中,(归并)排序是稳定的。
三、计算题
1.在如下数组a中链接存储了一个线性表,表头指针为a[0].next,试写出该线性表。
a01234567
data
next
90)
参考答案:
线性表为:
(2、请画出下图的邻接矩阵和邻接表
0?
邻接矩阵:
邻接表:
1110?
0101?
1011?
0101?
1110?
3、已知一个图的顶点集v和边集e分别为:
v={1,2,3,4,5,6,7};
e={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};
用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。
用克鲁斯卡尔算法得到的最小生成树为:
(1,2)3,(4,6)4,(1,3)5,(1,4)8,(2,5)10,(4,7)20
5、画出向小根堆中加入数据4,2,5,8,3时,每加入一个数据后堆的变化。
1、linklistmynote(linklistl)
{//l是不带头结点的单链表的头指针if(ll-next){
q=l;
l=l-next;
p=l;
s1:
while(p-next)p=p-next;
s2:
p-next=q;
q-next=null;
}
returnl;
请回答下列问题:
(1)说明语句s1的功能。
(2)说明语句组s2的功能。
(3)设链表表示的线性表为(a1,a2,?
an),写出算法执行后的返回值所表示的线性表。
(1)查询链表的尾结点
(2)将第一个结点链接到链表的尾部,作为新的尾结点(3)返回的线性表为(a2,a3,?
an,a1)。
2、voidabc(btnode*bt){
ifbt{
abc(bt-left);
abc(bt-right);
coutbt-data;
}}
该算法的功能是:
递归地后序遍历链式存储的二叉树
五、算法填空
二叉搜索树的查找——递归算法:
boolfind(btreenode*bst,elemtypeitem){if(bst==null)
returnfalse;
//查找失败else{
if(item==bst-data){
item=bst-data;
//查找成功return(true);
}elseif(itembst-data)
returnfind(bst-left,item);
elsereturnfind(bst-right,item);
}//if}
统计出单链表hl中结点的值等于给定值x的结点数。
intcountx(lnode*hl,elemtypex)
{inti=0;
lnode*p=hl;
//i为计数器while(p!
=null)
{if(p-data==x)i++;
p=p-next;
}//while,出循环时i中的值即为x结点个数returni;
}//countx
【篇三:
数据结构试题库集及答案】
>
第一章概论
一、选择题
1、研究数据结构就是研究(d)。
a.数据的逻辑结构b.数据的存储结构
c.数据的逻辑结构和存储结构d.数据的逻辑结构、存储结构及其基本操作
2、算法分析的两个主要方面是(a)。
a.空间复杂度和时间复杂度b.正确性和简单性
c.可读性和文档性d.数据复杂性和程序复杂性
3、具有线性结构的数据结构是(d)。
a.图b.树c.广义表d.栈
4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、(b)等5个特性。
a.可执行性、可移植性和可扩充性b.可执行性、有穷性和确定性
c.确定性、有穷性和稳定性d.易读性、稳定性和确定性
5、下面程序段的时间复杂度是(c)。
im;
a[i][j]=i*j;
2a.o(m)b.o(n2)c.o(m*n)
d.o(m+n)
6、算法是(d)。
a.计算机程序b.解决问题的计算方法c.排序算法
d.解决问题的有限运算序列
7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示(c)。
2a.o(n)b.o(nlog2n)c.o(n)d.o(log2n)
8、下面程序段的时间复杂度为(c)。
a.o(n)b.o(3n)c.o(log3n)d.o(n3)
9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。
a.结构b.关系c.运算d.算法
10、下面程序段的时间复杂度是()。
while(sn){
s+=i;
a.o(n)b.o(n2)c.o(log2n)d.o(n3)
11、抽象数据类型的三个组成部分分别为()。
a.数据对象、数据关系和基本操作b.数据元素、逻辑结构和存储结构
c.数据项、数据元素和数据类型d.数据元素、数据结构和数据类型
12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。
a.正确性算法应能正确地实现预定的功能
b.易读性算法应易于阅读和理解,以便调试、修改和扩充
c.健壮性当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果
d.高效性即达到所需要的时间性能
13、下列程序段的时间复杂度为(b)。
x=n;
y=0;
while(x=(y+1)*(y+1))
y=y+1;
b.o(n)c.o
(1)d.o(n2)a.o(n)
1、程序段“i=1;
while(i=n)i=i*2;
”的时间复杂度为。
2、数据结构的四种基本类型中,树形结构的元素是一对多关系。
三、综合题
1、将数量级o
(1),o(n),o(n2),o(n3),o(nlog2n),o(log2n),o(2n)按增长率由小到大排序。
23n答案:
o
(1)o(log2n)o(n)o(nlog2n)o(n)o(n)o
(2)
一、填空题
1.数据结构被形式地定义为(d,r),其中d是的有限集合,r是d上的有限集合。
2.数据结构包括数据的、数据的和数据的这三个方面的内容。
3.数据结构按逻辑结构可分为两大类,它们分别是和。
4.线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在多对多关系。
5.在线性结构中,第一个结点前驱结点,其余每个结点有且只有结点没有后续结点,其余每个结点有且只有1个后续结点。
6.个前驱结点;
叶子结点没有个前驱结点;
最后一个续结点,其余每个结点的后续结点数可以任意多个。
7.在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
8.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引、散列。
9.数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
10.一个算法的效率可分为效率和效率。
11.任何一个c程序都由和若干个被调用的其它函数组成。
二、单项选择题
(b)1.非线性结构是数据元素之间存在一种:
a)一对多关系b)多对多关系c)多对一关系d)一对一关系
(c)2.数据结构中,与所使用的计算机无关的是数据的结构;
a)存储b)物理c)逻辑d)物理和存储
(c)3.算法分析的目的是:
a)找出数据结构的合理性b)研究算法中的输入和输出的关系
c)分析算法的效率以求改进d)分析算法的易懂性和文档性
()4.算法分析的两个主要方面5是:
a)空间复杂性和时间复杂性b)正确性和简明性
c)可读性和文档性d)数据复杂性和程序复杂性
(c)5.计算机算法指的是:
a)计算方法b)排序方法c)解决问题的有限运算序列d)调度方法
(b)6.计算机算法必须具备输入、输出和等5个特性。
a)可行性、可移植性和可扩充性b)可行性、确定性和有穷性
c)确定性、有穷性和稳定性d)易读性、稳定性和安全性
三、简答题
1.数据结构和数据类型两个概念之间有区别吗?
数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。
2.简述线性结构与非线性结构的不同点。
答:
线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是多对多的。
四、分析下面各程序段的时间复杂度
1.for(i=0;
in;
i++)for(j=0;
jm;
j++)a[i][j]=0;
3.x=0;
i++)for(j=1;
j=n-i;
j++)x++;
2.s=0;
for(i=0;
i++)for(j=0;
jn;
j++)s+=b[i][j];
4.i=1;
while(i=n)i=i*3;
五、设有数据逻辑结构s=(d,r),试按各小题所给条件画出这些逻辑结构的图示,并确定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习题 答案