数据结构练习题.docx
《数据结构练习题.docx》由会员分享,可在线阅读,更多相关《数据结构练习题.docx(18页珍藏版)》请在冰豆网上搜索。
![数据结构练习题.docx](https://file1.bdocx.com/fileroot1/2022-11/16/875b8b71-7b2d-4ce6-ba21-fe7a1166c288/875b8b71-7b2d-4ce6-ba21-fe7a1166c2881.gif)
数据结构练习题
第一章
单项选择
1.算法指的是(A)。
A..对特定问题求解步骤的一种描述,是指令的有限序列。
B.解决问题的计算方法
C.计算机程序D.数据处理
2.下面(B算法所必须具备的特性。
A.可行性B.高效性C.确定性D.有穷性
3.算法分析的两个主要方面是(C)
A.数据复杂性和程序复杂性B.可读性和文档性C.空间性能和时间性能D.正确性和简明性
4..链式存储结构(非顺序存储映象):
借助(D )表示数据元素之间的逻辑关系。
A存储空间的大小B,元素在存储器中的相对位置C.元素值的大小D.指示元素存储地址的指针
5.当一个算法的空间复杂性与问题的规模n成正比时,则表示为( B)。
A.O
(1)B.O(n)C.O(n*n)D.On
6.解决具体问题的步骤有:
具体问题、算法、数学模型、程序。
分析问题正确的顺序为( B)。
A.具体问题、分析问题、算法、数学模型、程序B.具体问题、分析问题、数学模型、算法、程序
C.具体问题、分析问题、数学模型、程序、算法D.数学模型、具体问题、分析问题、算法、程序
7..顺序存储结构(顺序映象):
借助元素在存储器中的( B)来表示数据元素之间的逻辑关系。
A.地址B.位置C.容量D..速度
8..当一个算法的时间复杂性与问题的规模n大小无关时,则表示为( B)。
A.1B.O
(1)C.O(n)D.O(0)
9.链接存储结构中的数据元素之间的逻辑关系是由(C)表示的。
A.线性结构B.存储位置C.指针D.非线性结构
10..假设有如下遗产继承规则:
丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是(D)。
A.树B.集合C.线性表D.图
11.以基本操作重复执行的次数作为算法的时间量度,则下列C程序段的时间复杂度为( C)。
for(j=1;j<=n;++j)
for(i=j;i<=n;++i)
{++x; s+=x;}
A.O(n*n/2)B.O(n*n)/2C.O(n*n)D.O(n(n+1)/2)
12.数据结构是一门研究(B )的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
A,数值计算B.非数值计算C.时间复杂度和空间复杂度D.数据关系
13.算法的空间复杂度是指算法执行时( D )的增长率与问题规模n之间的关系。
A.程序代码占用的存储空间B.问题本身占用存储空间
C.程序代码和问题本身占用的存储空间D.所需的辅助存储空间
14..假定待处理的数据量用n表示,算法A中基本操作的语句频度f(n)=(n*n+n+5)/2;则算法A的时间复杂度T(n)为( D )
A.O((n*n+n+5))B.O((n*n+n+5)/2)C.O((n*n+n))D.O(n*n)
15.顺序存储结构中数据元素之间的逻辑关系是由(C)表示的。
A.非线性结构B.指针C存储位置.D.线性结构
16..算法分析的目的是(D)。
A.找出数据结构的合理性B.找出数据结构的合理性
B.C.研究算法中输入和输出的关系D.分析算法的性能以求改进
判断题
17.算法的时间复杂度都要通过算法中的基本语句的执行次数来确定。
(:
错误)
18..每种数据结构都具备三个基本操作:
插入、删除和查找。
(错误)
19..基于某种逻辑结构之上的基本操作,其实现是唯一的。
(错误)
20.逻辑结构与数据元素本身的内容和形式无关。
(正确)
线性表:
顺序存储结构
单项选择
1.从逻辑上可以把数据结构分为(A)两大类。
A.线性结构与非线性结构B.动态结构与静态结构C.初等结构与构造型结构D.顺序结构与链式结构
2.下面关于线性表的叙述错误的是(C )。
A.线性表采用顺序存储,必须占用一片地址连续的单元
B.线性表采用链式存储,不必占用一片地址连续的单元
C.线性表采用顺序存储,便于进行插入和删除操作
D.线性表采用链式存储,便于进行插入和删除操作
3.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概念的,插入一个元素时平均要移动表中的( C)个元素。
A.(n-1)/2B.nC.n/2D.n+1)/2
4.顺序表----插入操作算法的基本操作是(B )。
A.数据交换B.数据移动C数据相加D.数据比较
5..在《数据结构》中,ElemType是(D )
A链表的结点类型名B.用变量名C.数组元素D.数据元素类型名
6.顺序表的基本操作DestroyList用于销毁一个顺序表。
算法描述如下:
StatusDestroyList(______C______){
free(L.elem);
L.elem=NULL;
L.length=0;
L.listsize=0;
return(OK);
}
请选择正确的选项填在空中。
A.SqListLB.SqList*LC.SqList&LD.char*L
7.下面()不是算法所必须具备的特性。
A.可行性B确定性.C.确定性D高效性
8..删除顺序表L中从第i个元素起的k个元素的算法,请选择正确的选项作为其参数表。
StatusDeleteBlock(_________________C__________);
A.SqListL,inti,intkB.SqListL,int&i,intkC.SqList&L,inti,intkDSqListL,inti,int&k
9..顺序表的基本操作ListLength用于求顺序表的长度。
算法描述如下:
intListLength(SqListL){____B__________________________;}
请选择正确的选项填在空中。
A.return(L.size)Breturn(L.length)Creturn(L.elem)D.return(length)
10.线性表是( A )。
A一个有限序列,可以为空B一个无限序列,不能为空
C一个有限序列,不能为空D一个无限序列,可以为空
11.在发生非法操作时,算法能够作出适当处理的特性称为(C)。
A.可移植性B.可读性C.健壮性D.正确性
12.顺序表的基本操作ClearList用于将一个顺序表置为空表。
算法描述如下:
StatusClearList(SqList&L){
_(_______D__)
return(OK);
}请选择正确的选项填在空中。
A.L.size=0;B.for(i=0;i判断题
13.线性表的逻辑顺序与存储顺序总是一致的。
False
14.线性表的特点是每个元素都有一个前驱和一个后继。
True
15.数据的逻辑结构说明数据元素之间的次序关系,它依赖于数据的存储结构。
:
false
16.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
答案:
:
false
17..在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。
参考答案:
正确
18.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。
参考答案:
正确
19..顺序存储的线性表可以按序号随机存取。
参考答案:
正确
20..在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定相邻。
false
线性表:
链式存储结构
单项选择
1.用链表表示线性表的优点是(C)。
A便于随机存取B.数据元素的物理顺序与逻辑顺序相同
C便于插入和删除D花费的存储空间较顺序存储少
2.下面关于线性表的叙述错误的是( C )
A.线性表采用链式存储便于进行插入和删除操作B.线性表采用链式存储,不必占用一片地址连续的单元
C.线性表采用顺序存储便于进行插入和删除操作D线性表采用顺序存储,必须占用一片地址连续的单元
3..单链表中,增加一个头结点的目的是为了( )
A.说明单链表是线性表的链式存储.B.标识表结点中首结点的位置
C.使单链表至少有一个结点D.方便运算的实现
4.若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。
A.单链表B.双向链表C仅有头指针的单循环链表D.仅有尾指针的单循环链表
5.构造一个带头结点的空链表, 算法描述:
StatusInitList_L(LinkList&L){
L=(Lnode*)malloc(_____D____);
if(L==NULL)exit(OVERFLOW);
L->next=NULL; L->data=0;
returnOK;}
A.sizeof(ElemType)B.100*sizeof(Lnode)C.100*sizeof(ElemType)D.sizeof(Lnode)
6..采用链式存储结构表示数据时,相邻的数据元素的存储地址(B )。
A.一定不连续B.不一定连续C.一定连续D.部分连续,部分不连续
7.带头结点的单链表逆置算法如下:
void invert(LinkListL){
p=L->next ; L->next=NULL;
while(p){q=p;p=p->next;
(_______________C_____________)
}
}
A.q->next=L;L->next=q; B.L->next=q->next;q->next=L;C.q->next=L->next;L->next=q;D.L->next=q;
8.顺序表----插入操作算法的基本操作是( D )。
A.数据相加B.数据交换C.数据比较D.数据移动
9.若某线性表中最常用的在操作是取第i个元素和找第i个元素的前驱元素,则采用( D)存储方式最节省运算时间。
A.单循环链表B.单链表C.双向链表D.顺序表
10..用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为( B )。
A.j=