当前位置:文档之家› 数据结构练习题

数据结构练习题

第一章单项选择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. On6.解决具体问题的步骤有:具体问题、算法、数学模型、程序。

分析问题正确的顺序为(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)/24.顺序表----插入操作算法的基本操作是(B )。

A.数据交换B. 数据移动C数据相加 D. 数据比较5..在《数据结构》中,ElemType是(D )A链表的结点类型名 B. 用变量名 C. 数组元素D. 数据元素类型名6.顺序表的基本操作DestroyList用于销毁一个顺序表。

算法描述如下:Status DestroyList(______C______){free(L.elem);L.elem=NULL;L.length=0;L.listsize=0;return(OK);}请选择正确的选项填在空中。

A.SqList LB. SqList *LC. SqList &LD. char *L7.下面()不是算法所必须具备的特性。

A .可行性B确定性. C. 确定性D高效性8..删除顺序表L中从第i 个元素起的k 个元素的算法,请选择正确的选项作为其参数表。

Status DeleteBlock(_________________C__________);A.SqList L,int i,int kB. SqList L,int &i,int kC. SqList &L,int i,int k D SqListL,int i,int &k9..顺序表的基本操作ListLength用于求顺序表的长度。

算法描述如下:int ListLength(SqList L){ ____B__________________________;}请选择正确的选项填在空中。

A.return(L.size ) B return(L.length) C return(L.elem) D. return(length)10.线性表是( A )。

A 一个有限序列,可以为空B一个无限序列,不能为空C一个有限序列,不能为空D一个无限序列,可以为空11.在发生非法操作时,算法能够作出适当处理的特性称为(C)。

A.可移植性B. 可读性C.健壮性D. 正确性12.顺序表的基本操作ClearList用于将一个顺序表置为空表。

算法描述如下:Status ClearList(SqList &L){_(_______D__)return(OK);}请选择正确的选项填在空中。

A.L.size=0;B. for(i=0;i<L.length;i++)L.elem[i]=0;C. L.elem=0; D L.length=0;判断题13.线性表的逻辑顺序与存储顺序总是一致的。

False14.线性表的特点是每个元素都有一个前驱和一个后继。

True15.数据的逻辑结构说明数据元素之间的次序关系,它依赖于数据的存储结构。

:false16.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

答案: :false17..在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。

参考答案:正确18.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。

参考答案:正确19..顺序存储的线性表可以按序号随机存取。

参考答案:正确20..在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定相邻。

false线性表:链式存储结构单项选择1.用链表表示线性表的优点是(C)。

A便于随机存取 B. 数据元素的物理顺序与逻辑顺序相同C便于插入和删除D花费的存储空间较顺序存储少2.下面关于线性表的叙述错误的是( C )A.线性表采用链式存储便于进行插入和删除操作B. 线性表采用链式存储,不必占用一片地址连续的单元C. 线性表采用顺序存储便于进行插入和删除操作D线性表采用顺序存储,必须占用一片地址连续的单元3..单链表中,增加一个头结点的目的是为了( C )A. 说明单链表是线性表的链式存储.B. 标识表结点中首结点的位置C. 使单链表至少有一个结点D. 方便运算的实现4.若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。

A.单链表B. 双向链表C 仅有头指针的单循环链表 D. 仅有尾指针的单循环链表5.构造一个带头结点的空链表, 算法描述:Status InitList_L(LinkList &L){L=( Lnode * ) malloc ( _____D____ );if (L==NULL) exit (OVERFLOW);L -> next=NULL; L -> data=0;return OK; }A .sizeof ( ElemType ) B. 100*sizeof ( Lnode ) C. 100*sizeof ( ElemType ) D . sizeof ( Lnode )6..采用链式存储结构表示数据时,相邻的数据元素的存储地址(B )。

A. 一定不连续B.不一定连续C. 一定连续D. 部分连续,部分不连续7.带头结点的单链表逆置算法如下:void invert(LinkList L){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=j->nextB. j=r[j].next C .j=j+1 D. j=r[j]-> next11. .链表不具备的特点试( B )。

A.不必事先预分配存储空间B. 可随机访问任一元素C. 所需空间与线性表长度成正比.D. 插入删除不需要移动元素12.在单链表指针为P的结点之后插入指针为s的结点,正确的操作是( C)。

相关主题