数据结构复习题.docx
《数据结构复习题.docx》由会员分享,可在线阅读,更多相关《数据结构复习题.docx(147页珍藏版)》请在冰豆网上搜索。
数据结构复习题
1绪论
沈阳理工大学应用技术学院
信息与控制学院
计算机科学与技术教研室
2011-5-8
数据结构复习题:
绪论
单选题
1、在数据结构中,与所使用的计算机无关的数据叫__C___结构。
A存储|B物理|C逻辑|D物理和存储
2、在数据结构中,从逻辑上可以把数据结构分成___C___。
A动态结构和静态结构|B紧凑结构和非紧凑结构|C线性结构和非线性结构|D内部结构和外部结构图
3、数据结构在计算机内存中的表示是指____A___。
数据的存储结构|数据结构|数据的逻辑结构|数据元素之间的关系
4、在数据结构中,与所使用的计算机无关的是数据的__A____结构。
逻辑|存储|逻辑和存储|物理
5、在以下的叙述中,正确的是__B___。
线性表的线性存储结构优于链表存储结构|二维数组是其数据元素为线性表的线性表|栈的操作方式是先进先出|队列的操作方式是先进后出
6、在决定选取何种存储结构时,一般不考虑_______。
各结点的值如何|结束个数的多少|对数据有哪些运算|所用编程语言实现这种结构是否方便
7、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_______。
数据的处理方法|数据元素的类型|数据元素之间的关系|数据的存储方法
8、下面说法错误的是_______。
(1) 算法原地工作的含义是指不需要任何额外的辅助空间
(2) 在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法
(3) 所谓时间复杂度是指最坏情况下,估计算法执行时间的一个上界
(4) 同一个算法,实现语句的级别越高,执行效率越低
(1)|
(1)、
(2)|
(1)、(4)|(3)
9、通常要求同一逻辑结构中的所有数据元素具有相同的特性。
这意味着______。
数据元素具有同一特点|不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致|每个数据元素都一样|数据元素所包含的数据项的个数要相等
10、以下说法正确的是_______。
数据元素是数据的最小单位|数据项是数据的基本单位|数据结构是带结构的数据项的集合|一些表面上很不相同的数据可以有相同的逻辑结构
11、____是数据的最小单元,_____是数据的基本单位.
数据项|数据元素|信息项|表元素
12、数据结构是指_____以及它们之间的_____.
(1)数据元素
(2)结构|
(1)计算方法
(2)关系|
(1)逻辑存储
(2)运算|
(1)数据映像
(2)算法
13、计算机所处理的数据一般具备某种内在的关系,这是的指_____.
数据和数据之间存在的某种关系|元素和元素之间存在某种关系|元素内部具有某种结构|数据项和数据项之间存在某种关系
14、数据的逻辑结构可以分为_____两类.
动态结构和表态结构|紧凑结构和非紧凑结构|线性结构和非线性结构|内部结构和外部结构
15、数据的逻辑结构是指_____关系的整体.
数据元素之间逻辑|数据项之间逻辑|数据类型之间|存储结构之间
16、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_____.
数据的处理方法|数据元素的类型|数据元素之间的关系|数据的存储方法
17、在数据的存储结构中,一个存储结点存储一个_____.
数据项|数据元素|数据结构|数据类型
18、在计算机的存储器中表示时,物理地址和逻辑地址直接对应并且是连续的,称之为_____.
逻辑结构|顺序存储结构|链式存储结构|以上都对
19、数据采用链式存储结构时,要求_____.
每个结点用占一片连续的存储区域|所有结点占用一片连续的存储区域|结点的最后一个数据域是指针类型|每个结点有多少个后继,就设多少个指针域
20、数据的运算_____.
效率与采用何种存储结构有关|是根据存储结构来定义的|有算术运算和关系运算两大类|必须用程序设计语言来描述
21、下列说法中,不正确的是_____.
数据元素是数据的基本单位|数据项是数据中不可分割的最小可标识单位|数据可由若干个数据元素构成|数据项可由若干个数据元素构成
22、_____不是算法的基本特性.
可行性|长度有限|在规定的时间内完成|确定性
23、计算机中算法指的是解决某一问题的有限运算序列,它必须具备输入、输出、_____.
可行性、可移植性和可扩充性|可行性、有穷性和确定性|确定性、有穷性和稳定性|易读性、稳定性和确定性
24、以下不属于算法特性的是_____.
可行性|有输入|确定性|健壮性
25、下面关于算法的说法正确的是_____.
算法最终必须由程序实现|算法的有穷性是对于任意的一组输入值必须在有穷步骤后结束|算法的可行性是指指令不能有二义性|以上几个都是错误的
26、算法的时间复杂度与______有关
问题规模|计算机硬件性能|编译程序质量|程序设计语言
27、算法分析的主要任务是分析_____.
算法是否具有较好的可读性|算法中是否存在语法错误|算法的功能是否符合设计要求|算法的执行时间和问题规模之间的关系
28、某算法的时间复杂度为O(n2),表明该算法的_____.
问题规模是n2|执行时间等于n2|执行时间与n2成正比|问题规模与n2成正比
29、算法分析的目的是_____.
找出数据结构的合理性|研究算法中输入和输出关系|分析算法的效率以求改进|分析算法的易读性和文档性
30、线性表是具有n个______的有限序列。
表元素|字符|数据元素|数据项
31、线性表是______。
一个有限序列,可以为空|一个有限序列,不可以为空|一个无限序列,可以为空|一个无限序列,不可以为空
32、线性表采用链表存储时,其地址______。
必须是连续的|一定是不连续的|部分地址必须是连续的|连续与否均可以
33、链表不具备的特点是______。
可随机访问任一结点|插入删除不需要移动元素|不必事先估计存储空间|所需空间与其长度成正比
34、线性表的静态存储结构与顺序存储结构相比优点是_______。
所有的操作算法实现简单|便于随机存取|便于插入和删除|便于利用零散的存储器空间
35、设线性表有n个元素,以下操作中,_______在顺序表上实现比在链表上实现效率更高。
输出第i(1<=i<=n)个元素值|交换第1个元素与第2个元素的值|顺序输出这n个元素的值|输出与给定值x相等的元素在线性表中的序号
36、对于一个线性表,既要求能够较快地进行插入和删除,又要求存储结构能够反映数据元素之间的逻辑关系,则应采用_______存储结构。
顺序|链式|散列|索引
37、设线性表中有2n个元素,以下操作中,______在单链表上实现要比在顺序表上实现效率更高。
删除指定的元素|在最后一个元素的后面插入一个新元素|顺序输出前k个元素|交换第i个元素和第2n-i-1个元素的值(i=0,1,…,n-1)
38、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是______。
单链表|静态链表|线性链表|顺序存储结构
39、如果最常用其所长的操作是取第i个结点及其前驱,则采用______结构方式最节省时间。
单链表|双链表|单循环链表|顺序表
40、与单链表相比,双链表的优点之一是______。
插入、删除操作更简单|可以进行随机访问|可以省略表头指针或表尾指针|访问前后相邻结点更灵活
41、数据结构在计算机内存中的表示是指______.
数据的存储结构|数据结构|数据的逻辑结构|数据元素之间的关系
42、下面程序段的时间复杂度为_________.
O(m)|O(n)|O(m*n)|O(m+n)
for(inti=0;ifor(intj=0;ja[i][j]=i*j;
数据结构复习题答案:
绪论
单选题
1、存储|物理|逻辑|物理和存储C
1C2C3A4A5B6A7C8A9B10D
11AB12AB13B14C
2、动态结构和静态结构|紧凑结构和非紧凑结构|线性结构和非线性结构|内部结构和外部结构图?
AC
3、数据的存储结构|数据结构|数据的逻辑结构|数据元素之间的关系A
4、逻辑|存储|逻辑和存储|物理A
5、线性表的线性存储结构优于链表存储结构|二维数组是其数据元素为线性表的线性表|栈的操作方式是先进先出|队列的操作方式是先进后出B
6、各结点的值如何|结束个数的多少|对数据有哪些运算|所用编程语言实现这种结构是否方便A
7、数据的处理方法|数据元素的类型|数据元素之间的关系|数据的存储方法C
8、
(1)|
(1)、
(2)|
(1)、(4)|(3)A
9、数据元素具有同一特点|不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致|每个数据元素都一样|数据元素所包含的数据项的个数要相等B
10、数据元素是数据的最小单位|数据项是数据的基本单位|数据结构是带结构的数据项的集合|一些表面上很不相同的数据可以有相同的逻辑结构D
11、数据项|数据元素|信息项|表元素A|B
12、
(1)数据元素
(2)结构|
(1)计算方法
(2)关系|
(1)逻辑存储
(2)运算|
(1)数据映像
(2)算法A|B
13、数据和数据之间存在的某种关系|元素和元素之间存在某种关系|元素内部具有某种结构|数据项和数据项之间存在某种关系B
14、动态结构和表态结构|紧凑结构和非紧凑结构|线性结构和非线性结构|内部结构和外部结构C
15A16C17B18B19A20A
21D22B23B24D25B26A27D28C29C30C
31A32D33A34C35A36B37A38B39B40D
41A42C
15、数据元素之间逻辑|数据项之间逻辑|数据类型之间|存储结构之间A
16、数据的处理方法|数据元素的类型|数据元素之间的关系|数据的存储方法C
17、数据项|数据元素|数据结构|数据类型B
18、逻辑结构|顺序存储结构|链式存储结构|以上都对B
19、每个结点用占一片连续的存储区域|所有结点占用一片连续的存储区域|结点的最后一个数据域是指针类型|每个结点有多少个后继,就设多少个指针域A
20、效率与采用何种存储结构有关|是根据存储结构来定义的|有算术运算和关系运算两大类|必须用程序设计语言来描述A
21、数据元素是数据的基本单位|数据项是数据中不可分割的最小可标识单位|数据可由若干个数据元素构成|数据项可由若干个数据元素构成D
22、可行性|长度有限|在规定的时间内完成|确定性B
23、可行性、可移植性和可扩充性|可行性、有穷性和确定性|确定性、有穷性和稳定性|易读性、稳定性和确定性B
24、可行性|有输入|确定性|健壮性D
25、算法最终必须由程序实现|算法的有穷性是对于任意的一组输入值必须在有穷步骤后结束|算法的可行性是指指令不能有二义性|以上几个都是错误的B
26、问题规模|计算机硬件性能|编译程序质量|程序设计语言A
27、算法是否具有较好的可读性|算法中是否存在语法错误|算法的功能是否符合设计要求|算法的执行时间和问题规模之间的关系D
28、问题规模是n2|执行时间等于n2|执行时间与n2成正比|问题规模与n2成正比C
29、找出数据结构的合理性|研究算法中输入和输出关系|分析算法的效率以求改进|分析算法的易读性和文档性C
30、表元素|字符|数据元素|数据项C
31、一个有限序列,可以为空|一个有限序列,不可以为空|一个无限序列,可以为空|一个无限序列,不可以为空A
32、必须是连续的|一定是不连续的|部分地址必须是连续的|连续与否均可以D
33、可随机访问任一结点|插入删除不需要移动元素|不必事先估计存储空间|所需空间与其长度成正比A
34、所有的操作算法实现简单|便于随机存取|便于插入和删除|便于利用零散的存储器空间C
35、输出第i(1<=i<=n)个元素值|交换第1个元素与第2个元素的值|顺序输出这n个元素的值|输出与给定值x相等的元素在线性表中的序号A
36、顺序|链式|散列|索引B
37、删除指定的元素|在最后一个元素的后面插入一个新元素|顺序输出前k个元素|交换第i个元素和第2n-i-1个元素的值(i=0,1,…,n-1)A
38、单链表|静态链表|线性链表|顺序存储结构B
39、单链表|双链表|单循环链表|顺序表D
40、插入、删除操作更简单|可以进行随机访问|可以省略表头指针或表尾指针|访问前后相邻结点更灵活D
41、数据的存储结构|数据结构|数据的逻辑结构|数据元素之间的关系A
42、O(m||O(m*n)|O(m+n)C
数据结构复习题:
绪论
判断题
1、数据元素是数据的最小单位。
2、数据项是数据的基本单位。
3、数据元素是数据的最小单位
4、数据对象就是一组任意数据元素的集合
5、任何数据结构都具备3个基本运算:
插入、删除和查找.
6、数据是由一些类型相同的数据元素构成的
7、数据是逻辑结构与各数据元素在计算机中如何存储有关
8、如果数据元素值发生改变,则数据的逻辑结构也随之改变.
9、逻辑结构相同的数据,可以采用多种不同的存储方法.
10、逻辑结构相同的数据,结点类型也一定相同
11、逻辑结构不相同的数据,必须采用不同的存储方式来存储
12、数据的逻辑结构是指数据的各数据项之间的逻辑关系.
13、算法的优劣与算法描述语言有无关,但与所有计算机有关。
14、算法可以用不同的语言描述,如果用C或Pascal等高级语言来描述,则算法实际上就是程序了。
15、程序一定是算法。
16、算法最终必须由计算机程序实现。
19、健壮的算法不会因非法入输数据而出现莫名其妙的执行结果。
数据结构复习题答案:
绪论
判断题
1、False
2、False
3、False
4、False
5、False
6、True
7、False
8、False
9、True
10、False
11、False
12、False
13、False
14、False
15、False
16、False
19、True
数据结构复习题:
绪论
算法分析题
1、求两个n阶矩形的乘法C=A*B,其算法如下:
#defineMAX100
voidmaxtrixmult(int,floata[MAX][MAX],b[MAX][MAX],floatc[MAX][MAX])
{
inti,j,k;
floatx;
for(i=1;i<=n;i++)//①
{
for(j=1;j<=n;j++)//②
{
x=0;//③
for(k=1;k<=n;k++)//④
x+=a[i][k]*b[k][j];//⑤
c[i][j]=x;//⑥
}
}
}
计算①~⑥各语句的频度,并分析该算法的时间复杂度。
2、设n是偶数,试计算运行下列程序段后m的值并给出该程序段的时间复杂度。
m=0;
for(i=1;i<=n;i++)
for(j=2*1;j<=n;j++)
m++;
3、阅读下列算法:
voidsuan_fa(intn)
{
inti,j,k,s,x;
for(s=0,i=0;ifor(j=i;js++;
i=1;j=n;x=0;
while(i{
i++;
j--;
x+=2;
}
pirntf("s=%d,x=%d",s,x);
}
(1)分析算法中语句"s++;"的执行次数;
(2)分析算法中语句"x+=2;"的执行次数;
(3)分析该算法的时间复杂度;
(4)假定n=5,试指出执行该算法的输出结果。
6、设n是偶数,试计算运行下列程序段后m的值并给出该程序段的时间复杂度。
intm=0,i,j;
for(i=1;i<=n;i++)
for(j=2*i;j<=n;j++)
m++;
数据结构复习题答案:
绪论
算法分析题
1、答:
语句频度
for(i=1;i<=n;i++)//①……n+1
{for(j=1;j<=n;j++)//②……n(n+1)
{x=0;//③……n2
for(k=1;k<=n;k++)//④……n2(n+1)
x+=a[i][k]*b[k][j];//⑤……n3
c[i][j]=x;//⑥……n2
所以:
f(n)n+1+n(n+1)+n2+n2(n+1)+n3+n2=2n3+4n2+2n+1=O(n3)
2、答:
m+n(n-1)
O(n2)
3、分析算法中语句”s++;”的执行次数:
n+(n-1)+(n-2)+…+1=n(n+1)/2
分析算法中语句”x+=2;”的执行次数:
n/2
分析该算法的时间复杂度:
O(n2)假定n=5,试指出执行该算法的输出结果:
s=15,x=4
6、
数据结构复习题:
绪论
填空题
1、一个数据结构在计算机中______称为存储结构。
2、数据逻辑结构包括________,_________和________三种类型,树形结构和图形结构合称为________。
3、在线性结构中,第一个结点________前驱结点,其余每个结点有且只有_______个前驱结点:
最后一个结点______后续结点,其余每个结点有且只有______个后续结点。
4、在树形结构中,树根结点没有______结点,其余每个结点有且只有______个前驱结点:
叶子结点没有______结点,其余每个结点后的后续结点可以_______
5、在图形结构中,每个结点的前驱结点数和后续结点数可以________。
6、线性结构中元素之间存在_________关系,树形结构中元素之间存在_______关系,图形结构中元素之间存在________关系。
7、算法的5个重要特性是_________、__________、__________、输入和输出。
8、算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言来描述,则算法实现上就是程序了。
这个断言是________。
9、数据结构、数据元素和数据项在计算机中的映射(或表示)分别称为存储结构、结点和数据域。
这个断言是_______。
10、下面程序段的时间复杂度是_______。
for(i=0;ifor(j=0;jA[i][j]=0;
11、下面程序段的时间复杂度是_______。
i=s=0;
while(s{
i++;
s+=i;
}
12、下面程序段的时间复杂度是_______。
s=0;
for(i=0;ifor(j=0;js+=B[i][j];
sum=s;
13、下面程序段的时间复杂度是________。
i=1;
while(i<=n)
i=i*3;
14、有如下递归函数fact(n),分析其时间复杂度。
intfact(intn)
{
if(n<=1)
return1;
else
return(n*fact(n-1));
}
15、指出下列各算法的时间复杂度
(1)prime(intn)
{
inti=2;
while(n%i!
=0&&ii++;
if(i*1.0>sqrt(n))
printf"是一素数";
else
printf"不是一素数";
}
(2)sum1(intn)
{
intp=1,sum=0,i;
for(i=1;i<=n;i++)
{
p*=i;
sum+=p;
}
returm(sum);
}
(3)sum2(intn)
{
intsum=0,i,j;
for(i=1;i<=n;i++)
{
p=1;
for(j=1;j<=i;j++)
p*=j;
sum+=p;
}
return(sum);
}
16、数据的逻辑结构是指_____.
17、一个数据结构在计算机中的______称为存储结构.
18、顺序存储方法是把逻辑上_____存储在物理位置上______里;链式存储方法中结点间的逻辑关系是由_____的.
19、数据结构是指研究数据的_____和_____以及它们之间的相互关系,并对这种结构定义相应的_____,设计出相应的_____,从而确保经过这些运算后所得到的新结构是原来的结构类型.
20、一个算法具有5个特性:
_____、_____、_____、输入和输出。
21、算法的执行时间是_____的函数。
22、数据的逻辑结构是从逻辑上描述数据,它与数据的______无关,是独立于计算机的.
23、数据的逻辑结构被分为____________、____________、____________和____________4种。
24、数据的存储结构被分为____________、____________、____________和____________4种。
25、在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着____________、____________、____________的联系。
26、一种抽象数据类型包括____________和____________两个部分。
27、从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为____________,输出一个二维数组b[m][n]中所有元素值的时间复杂度为____________
28、在下面程序段中,s=s+p语句的执行次数为____________,p*=j语句的执行次数为____________,该程序段的时间复杂度为____________。
inti=0,s=0;
while(++i<=n)
{intp=1;
for(intj=1;j<=i;j++)
p*=j;
s=s+p;}
29、一个算法的时间复杂度为(3*n*n+2nlog2n+4n-7)/(5n),其数量级表示为____________。
30、从一个数组a[10]中顺序查找元素时,假定查找每个元素的概率都相同,则进行一次查找运算时的平均查找长度(即同元素的平均比较次数)为____________。
31、从一个数组a[7]中顺序查找元素时,假定查找第1个元素a[0]的概率为1/3,查找第2个元素a[1]的概率为1/4,其找其余元素的概率均相同,则在查找成功时同元素的平均比较次数为____________。
32、对于一个n*n的矩阵A的任意矩阵元素a[i][j],按行存储时和按列存储时的地址之差是 ____________。
设两种存储时的开始存储地址均为LOC(0,0),每个元素所占存储单元数均为d。
33、设有一个二维数组A[10][20],按行存放于一个连续的存储空间中,A[0][0]的存储地