数据结构 2.docx
《数据结构 2.docx》由会员分享,可在线阅读,更多相关《数据结构 2.docx(32页珍藏版)》请在冰豆网上搜索。
数据结构2
1.算法的计算量的大小称为计算的()。
A.效率B.复杂性C.现实性D.难度
参考答案:
B
2.算法的时间复杂度取决于()。
A.问题的规模B.待处理数据的初态C.A和B
参考答案:
C
3.计算机算法指的是()。
A.计算方法B.排序方法C.解决问题的步骤序列D.调度方法
参考答案:
C
4.计算机算法必须具备()这三个特性。
A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性
C.确定性、有穷性、稳定性D.易读性、稳定性、安全性
参考答案:
B
5.下面关于算法说法错误的是()。
A.算法最终必须由计算机程序实现
B.为解决某问题的算法同为该问题编写的程序含义是相同的
C.算法的可行性是指指令不能有二义性
D.以上几个都是错误的
参考答案:
D
6.从逻辑上可以把数据结构分为()两大类。
A.动态结构、静态结构B.顺序结构、链式结构
C.线性结构、非线性结构D.初等结构、构造型结构
参考答案:
C
第二课线性表
一选择题
1.下列属顺序存储结构优点的是()。
A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示
参考答案:
A
2.下列关于线性表的叙述中,错误的是()。
A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
参考答案:
B
3.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表
参考答案:
A
4.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表
参考答案:
D
5.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。
则采用()存储方式最节省运算时间。
A.单链表B.双链表C.带尾指针的单循环链表D.带头结点的双循环链表
参考答案:
D
6.静态链表中指针表示的是()。
A.下一元素的地址B.内存储器的地址
C.下一元素在数组中的位置D.左链或右链指向的元素的地址
参考答案:
C
7.链表不具有的特点是()。
A.插入、删除不需要移动元素B.可随机访问任一元素
C.不必事先估计存储空间D.所需空间与线性长度成正比
参考答案:
B
8.双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链表中的一个结点,现要求删去p所指结点,则正确的删除是()(链中结点数大于2,p不是第一个结点)。
A.p->llink->rlink=p->llink;p->llink->rlink=p->rlink;free(p);
B.free(p);p->llink->rlink=p->llink;p->llink->rlink=p->rlink;
C.p->llink->rlink=p->llink;free(p);p->llink->rlink=p->rlink;
D.以上A,B,C都不对。
参考答案:
D
9.下列说法错误的是()。
⑴静态链表既有顺序存储的优点,又有动态链表的优点。
所以,它存取表中第i个元素的时间与i无关。
⑵静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
⑶静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
A.⑴和⑵B.⑴C.⑴、⑵和⑶D.⑵
参考答案:
B
10.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()(1<=i<=n+1)。
A.O(0)B.O
(1)C.O(n)D.O(n2)
参考答案:
C
11.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。
A.O(n)O(n)B.O(n)O
(1)C.O
(1)O(n)D.O
(1)O
(1)
参考答案:
C
12.线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为()。
A.O(i)B.O
(1)C.O(n)D.O(i-1)
参考答案:
C
13.在一个以h为头的单循环链中,p指针指向链尾的条件是()。
A.p->next=hB.p->next=NULLC.p->next->next=hD.p->data=-1
参考答案:
A
14.双向链表中有两个指针域,llink和rlink,分别指回前驱及后继,设p指向链表中的一个结点,q指向一待插入结点,现要求在p前插入q,则正确的插入为()。
A.p->llink=q;q->rlink=p;p->llink->rlink=q;q->llink=p->llink;
B.q->llink=p->llink;p->llink->rlink=q;q->rlink=p;p->llink=q->rlink;
C.q->rlink=p;p->rlink=q;p->llink->rlink=q;q->rlink=p;
D.p->llink->rlink=q;q->rlink=p;q->llink=p->llink;p->llink=q;
参考答案:
D
15.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是()。
A.head==NULLB.head→next==NULLC.head→next==headD.head!
=NULL
参考答案:
B
第三课栈、队列和数组
一选择题
1.对于栈操作数据的原则是()。
A.先进先出B.后进先出C.后进后出D.不分顺序
参考答案:
B
2.一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是()。
A.不确定B.n-i+1C.iD.n-i
参考答案:
B
3.若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是()。
A.i-j-1B.i-jC.j-i+1D.不确定的
参考答案:
D
4.设abcdef以所给的次序进栈,若在进栈操作时,允许出栈操作,则下面得不到的出栈序列为()。
A.fedcbaB.bcafedC.dcefbaD.cabdef
参考答案:
D
5.输入序列为ABC,可以变为CBA时,经过的栈操作为()
A.push,pop,push,pop,push,popB.push,push,push,pop,pop,pop
C.push,push,pop,pop,push,popD.push,pop,push,push,pop,pop
参考答案B
6.若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是()。
A.top=top+1;V[top]=xB.V[top]=x;top=top+1
C.top=top-1;V[top]=xD.V[top]=x;top=top-1
参考答案:
C
7.若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是()。
A.|top[2]-top[1]|==0B.top[1]+1==top[2]C.top[1]+top[2]==mD.top[1]==top[2]
参考答案:
B
8.执行完下列语句段后,i值为:
()。
intf(intx)
{return((x>0)?
x*f(x-1):
2);}
inti;
i=f(f
(1));
A.2B.4C.8D.无限递归
参考答案:
B
9.表达式a*(b+c)-d的后缀表达式是()。
A.abcd*+-B.abc+*d-C.abc*+d-D.-+*abcd
参考答案:
B
10.表达式3*2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和算符栈为(),其中^为乘幂。
A.3,2,4,1,1;(*^(+*-B.3,2,8;(*^-C.3,2,4,2,2;(*^(-D.3,2,8;(*^(-
参考答案:
D
11.用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时()。
A.仅修改队头指针B.仅修改队尾指针
C.队头、队尾指针都要修改D.队头、队尾指针都可能要修改
参考答案:
D
12.递归过程或函数调用时,处理参数及返回地址,要用一种称为()的数据结构。
A.队列B.多维数组C.栈D.线性表
参考答案:
C
13.循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是()。
A.(rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-front
参考答案:
A
14.循环队列存储在数组A[0..m]中,则入队时的操作为()。
A.rear=rear+1B.rear=(rear+1)mod(m-1)
C.rear=(rear+1)modmD.rear=(rear+1)mod(m+1)
参考答案:
D
15.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?
()
A.1和5B.2和4C.4和2D.5和1
参考答案:
B
16.最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。
A.(rear+1)MODn==frontB.rear==front
C.rear+1==frontD.(rear-l)MODn==front
参考答案:
B
17.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是()。
A.6B.4C.3D.2
参考答案:
C
18.数组A[0..4,-1..-3,5..7]中含有元素的个数()。
A.55B.45C.36D.16
参考答案:
B
19.设二维数组A[1..m,1..n](即m行n列)按行存储在数组B[1..m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为()。
A.(i-1)*n+jB.(i-1)*n+j-1C.i*(j-1)D.j*m+i-1
参考答案:
A
20.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13B.33C.18D.40
参考答案:
B
21.设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为()。
A.BA+141B.BA+180C.BA+222D.BA+225
参考答案:
B
22.数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是()。
A.1175