《数据结构与算法》习题:选择题、判断题
- 格式:doc
- 大小:152.00 KB
- 文档页数:9
第一章绪论
1. 从逻辑上可以把数据结构分为( C )两大类。
A.动态结构、静态结构B.顺序结构、链式结构
C.线性结构、非线性结构D.初等结构、构造型结构
2. 在下面的程序段中,对x的赋值语句的频度为( C )。
For(k=1;k<=n;k++)
For(j=1;j<=n;j++)
x=x+1;
A.O(2n) B.O(n) C.O(n2) D.O(log2n)
3. 采用顺序存储结构表示数据时,相邻的数据元素的存储地址( A )。
A.一定连续B.一定不连续
C.不一定连续D.部分连续、部分不连续
4. 下面关于算法的说法,正确的是( D )。
A.算法的时间复杂度一般与算法的空间复杂度成正比
B.解决某问题的算法可能有多种,但肯定采用相同的数据结构
C.算法的可行性是指算法的指令不能有二义性
D.同一个算法,实现语言的级别越高,执行效率就越低
5. 在发生非法操作时,算法能够作出适当处理的特性称为( B )。
A.正确性B.健壮性C.可读性D.可移植性
第二章线性表
1. 线性表是( A )。
A.一个有限序列,可以为空B.一个有限序列,不能为空
C.一个无限序列,可以为空D.一个无限序列,不能为空
2.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。插入一个元素时平均要移动表中的( A )个元素。
A.n/2 B.(n+1)/2 C.(n-1)/2 D.n
3.线性表采用链式存储时,其地址( D )。
A.必须是连续的B.部分地址必须是连续的
C.一定是不连续的D.连续与否均可以
4.用链表表示线性表的优点是(C)。
A.便于随机存取B.花费的存储空间较顺序存储少
C.便于插入和删除D.数据元素的物理顺序与逻辑顺序相同
5.链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用( C )存储方式最节省运算时间。
A.单链表B.双链表C.单循环链表D.带头结点的双向循环链表6.下面关于线性表的叙述,错误的是( B )。
A.线性表采用顺序存储,必须占用一片地址连续的单元
B.线性表采用顺序存储,便于进行插入和删除操作
C.线性表采用链式存储,不必占用一片地址连续的单元
D.线性表采用链式存储,不便于进行插入和删除操作
7.单链表中,增加一个头结点的目的是为了( C )。
A.使单链表至少有一个结点B.标识表结点中首结点的位置
C.方便运算的实现D.说明单链表是线性表的链式存储
8.在单链表指针为p的结点之后插入指针为s结点,正确的操作是( B )。
A.p->next=s;s->next=p->next;
B.s->next=p->next;p->next=s;
C.p->next=s;p->next=s->next;
D.p->next=s->next;p->next=s;
9.在双向链表存储结构中,删除p所指的结点时须修改指针( A )。
A.(p-> prior)-> next = p->next ; (p->next)->prior =p-> prior ;
B.p-> prior=(p-> prior)-> prior ; (p-> prior)-> next =p ;
C.(p->next)->prior =p ; p->rlink=(p-> next)-> next ;
D.p->next =(p-> prior)-> prior ; p-> prior =(p-> next)-> next
10. 完成在双向循环链表结点p之后插入s的操作是( D )。
A.p->next =s; s-> prior =p; p-> next-> prior =s; s-> next =p-> next;
B.p->next-> prior =s; p-> next =s; s-> prior =p; s-> next =p-> next;
C.s-> prior =p; s-> next = p->next; p-> next =s; p-> next-> prior =s;
D.s-> prior =p; s-> next = p->next; p-> next-> prior =s;p-> next =s;
11. 若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( B )存储方式最节省运算时间。
A.单链表B.顺序表C.双向链表D.单循环链表
12. 若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表
C.双向链表D.仅有尾指针的单循环链表
第三章栈和队列
1.向一个栈顶指针为top的链栈中插入一个p所指结点时,其操作步骤为( C )。
A.top->next=p;B.p->next=top->next;top->next=p;
C.p->next=top;top=p;D.p->next=top;top=top->next;
2.对于栈操作数据的原则是( B )。
A.先进先出B.后进先出
C.后进后出D.不分顺序
3.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,p n,若p n是n,则P i为( D )。
A.i B.n-i C.n-i+l D.不确定
4.表达式a *(b-c)+d的后缀表达式是( B )。
A.abcd*-+B.abc-*d+
C.abc*-d+D.+-*abcd
5.采用顺序存储的两个栈的共享空间S[1..m],用top[i]代表第i个栈(i=1,2)的栈顶,栈1的底在S[1],栈2的底在S[m],则栈满的条件是( B )。
A.top[2]-top[1]=0 B.top[1]+1= top[2]
C.top[1]+top[2] =m D.top[1]= top[2]
6.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( C )。
A.edcba B.decba C.dceab D.abcde
7.在一个链队列中,若f、r分别为队首、队尾指针,则插入p所指结点的操作为( B )。
A.f->next=p;f=p B.r->next=p;r=p
C.p->next=r;r=p D.p->next=f;f=p
8.用不带头结点的单链表存储队列时,在进行删除运算时( D )。
A.仅修改头指针B.仅修改尾指针
C.头、尾指针都要修改D.头、尾指针可能都要修改
9. 递归过程或函数调用时,处理参数及返回地址,要用一种称为( C )的数据结构。
A.队列B.静态链表C.栈D.顺序表
10. 栈和队都是( C )。
A.顺序存储的线性结构B.链式存储的非线性结构
C.限制存取点的线性结构D.限制存取点的非线性结构
第四章字符串及线性结构的扩展
1. 下面关于串的叙述,错误的是( C )。
A.串是字符的有限序列
B.串既可以采用顺序存储,也可以采用链式存储
C.空串是由空格构成的串
D.模式匹配是串的一种重要运算
2. 串的长度是指( B )。
A.串中所含不同字母的个数B.串中所含字符的个数
C.串中所含不同字符的个数D.串中所含非空格字符的个数
3.