s+=B[i][j];
sum=s;
10.下面程序段的时间复杂度是O(log3n)。
i=1;
while(i<=n)
i=i*3;
二、线性表
单项选择题.
,则2100,每个元素的长度为1.一个向量第一个元素的存储地址是。
B第5个元素的地址是
D.120
C.100A.110B.108,则栈的不可能输出序列是ec、d、2.一个栈的入栈序列是a、b、。
CD.abcde
C.dceabA.edcbaB.decba
、、pn,其输出序列为p、12、3、…、3.若一个栈的入栈序列是21。
C,则p为、…p、p,若p=nin31不确定D.C.n-i+1B.n=iA.i
。
A4.栈结构通常采用的两种存储结构是散列方式和索引方式B.线性存储结构和链表存储结构A.
线性存储结构和非线D.C.链表存储结构和数组
性存储结构5.判断一个栈ST(最多元素为m)为空的条件是B。
A.ST->top!
=0B.ST->top==0C.ST->top!
=mD.
ST->top==m
6.判断一个栈ST(最多元素为m)为满栈的条件是D。
A.ST->top!
=0B.ST->top==0C.ST->top!
=m-1D.
ST->top==m-1
7.栈的特点是B,队列的特点是A。
A.先进先出,后进后出B.先进后出,后进先出
8.一个队列的入队序列是1、2、3、4,则队列输出序列是B。
A.4、3、2、1B.1、2、3、4C.1、4、3、2D.3、2、4、1
9.判断一个队列QU(最多元素为m)为空的条件是C。
A.QU->rear-QU->front==mB.QU->rear-QU->front-1==m
C.QU->front==QU->rearD.QU->front-QU->rear+
1
10.判断一个队列QU(最多元素为m)为满队列的条件是
A。
A.QU->rear-QU->front==mB.QU->rear-QU->front-1==m
C.QU->front==QU->rearD.QU->front-QU->rear+
1
11.判断一个循环队列QU(最多元素为m)为空的条件是。
A.QU->front==QU->rearB.QU->front!
=QU->rear
C.QU->front==(QU->rear+1)%mD.QU->front!
=(QU->rear
+1)%m
12.判断一个循环队列QU(最多元素为m)为满队列的条件是。
A.QU->front==QU->rearB.QU->front!
=QU->rear
D.QU->front!
=(QU->rear
C.QU->front==(QU->rear+1)%m
+1)%m
13循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是。
A.(rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-front
14.栈和队列的共同点是。
A.都是先进后出B.都是先进先出
C.只允许在端点处插入、删除元素D.没有共同点
填空题
1.向量、栈和队列都是结构,可以在向量的位置插入和删除元素;对于栈只能在插入和删除元素;对于队列只能在插入元素和删除元素。
2.在一个长度为n的向量中的第i个元素(1≤i≤n)之前插入一个元素时,需向后移动个元素。
3.在一个长度为n的向量中的删除第i个元素(1≤i≤n)时,需要向前移动个元素。
4.向栈中压入元素的操作是。
5.对栈进行退栈时的操作是。
6.在一个循环队列中,队首指针指向队首元素的。
7.从循环队列中删除一个元素时,其操作是。
8.在具有n个单元的循环队列中,队满时共有个元素的。
9.一个栈的输入序列是12345,则栈的输出序列43512是。
10.一个栈的输入序列是12345,则栈的输出序列12345是。
三、链表
单项选择题
1.不带头结点的单链表head为空的判定条件是。
A.head==NULLB.head->nxt==NULL
C.head->next==headD.head!
=NULL
2.带头结点的单链表head为空的判定条件是。
A.head==NULLB.head->nxt==NULL
C.head->next==headD.head!
=NULL
3.非空的循环单链表head的尾结点(由p所指向)满足。
A.p->next==NULLB.p==NULLC.p->next==head
D.p==head
4.在循环双链表的p所指结点之后插入s所指结点的操作是。
A.p->right=s;s->left=p;p->right->left=s;s->right=p->right;
B.p->right=s;p->right->left=s;s->left=p;s->right=p->right;
C.s->left=p;s->right=p->right;p->right=s;p->right->left=s;
D.s->left=p;s->right=p->right;p->right->left=s;p->right=s;
所指结点的前驱结点,若在p所指结点是q在一个单链表中,已知5.
q和p之间插入s结点,
则执行。
A.s->next=p->next;p->next=s;B.p->next=s->next;s->next=
p;
C.q->next=s;s->next=p;D.p->next=s;s->next=q;
6.在一个单链表中,已知p所指结点不是最后结点,在p之后插入s所指结点,则执行。
A.s->next=p;p->next=s;B.s->next=p->next;p->next=
s;
C.s->next=p->next;p=s;D.p->next=s;s->next=p;
7.在一个单链表中,若删除p所指结点的后续结点,则执行。
A.p->next=p->next->next;p->next;
=pB.
p->next=p->next->next;
D.p=p->next->next;
C.p->next=p->next;
结点时,在查找成n个结点的单链表中查找其值等于x9.从一个具有个结点。
功的情况下,需平均比较
D.(n+1)/2
C.(n-1)/2B.n/2A.n
个结点的有序单链表中插入一个新结点并仍然有序在一个具