a[i][j]=i*j;
AO(m2)BO(n2)CO(m*n)DO(m+n)
14、下面程序段的时间复杂度为()
intf(unsignedintn){
if(n==0||n==1)return1;
elsereturnn*f(n-1);
}
AO
(1)BO(n)CO(n2)DO(n!
)
15、线性表若是采用链式存储结构时,要求内存中可用存储单元的地址()。
A必须是连续的
B 部分地址必须是连续的
C一定是不连续的
D 连续或不连续都可以
16、数据结构的定义为(D,S),其中D是()的集合。
A算法B数据元素C数据操作D逻辑结构
17、算法分析的目的是()。
A 找出数据结构的合理性
B 研究算法中输入和输出的关系
C 分析算法的效率以求改进
D 分析算法的易懂性和文档性
18、在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行()。
As->link=p;p->link=s;
Bs->link=p->link;p->link=s;
Cs->link=p->link;p=s;
Dp->link=s;s->link=p;
19、设单链表中结点结构为(data,link).已知指针q所指结点是指针p所指结点的直接前驱,若在*q 与*p之间插入结点*s,则应执行下列哪一个操作()
As->link=p->link;p->link=s;Bq->link=s;s->link=p
Cp->link=s->link;s->link=p;Dp->link=s;s->link=q;
20、设单链表中结点结构为(data,link).若想摘除结点*p的直接后继,则应执行下列哪一个操作()
Ap->link=p->link->link;
Bp=p->link;p->link=p->link->link;
Cp->link=p->link;Dp=p->link->link;
21、设单循环链表中结点的结构为(data,link),且rear是指向非空的带表头结点的单循环链表的尾结点的指针。
若想删除链表第一个结点,则应执行下列哪一个操作(D)
As=rear;rear=rear->link;deletes;
Brear=rear->link;deleterear;
Crear=rear->link->link;deleterear;
Ds=rear->link->link;rear->link->link=s->link;deletes;s为第一个结点硫
22、设单循环链表中结点的结构为(data,link),且first为指向链表表头的指针,current为链表当前指针,在循环链表中检测current是否达到链表表尾的语句是(D)。
Acurrent->link=nullBfirst->link=current
Cfirst=currentDcurrent->link=first
?
23、一个栈的入栈序列为a,b,c,则出栈序列不可能的是(C)。
A c,b,aBb,a,cCc,a,bDa,c,b
24、栈的数组表示中,top为栈顶指针,栈空的条件是(A)。
A top=0Btop=maxSizeC top=maxSizeDtop=-1
25、栈和队列的共同特点是(C)。
A 都是先进后出B都是先进先出
C 只允许在端点处插入和删除D没有共同点
26、假定一个顺序存储的循环队列的队头和队尾指针分别为f和r,则判断队空的条件为(D).
Af+1==rBr+1==fCf==0Df==r
27、当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为(B)
An-2Bn-1CnDn+1
28、当利用大小为n的数组顺序存储一个栈时,假定用top==n表示栈空,则向这个栈插入一个元素时,首先应执行()语句修改top指针。
Atop++;Btop--;Ctop=0;Dtop;
29、设链式栈中结点的结构为(data,link),且top是指向栈顶的指针。
若想摘除链式栈的栈顶结点,并将被摘除结点的值保存到x中,则应执行下列(A)操作。
Ax=top->data;top=top->link;Btop=top->link;x=top->data;
Cx=top;top=top->link;Dx=top->data;
30、设循环队列的结构是:
constintMaxsize=100;
typedefintDataType;
typedefstruct{
DataTypedata[Maxsize];
Intfront,rear;
}Queue;
若有一个Queue类型的队列Q,试问判断队列满的条件应是下列哪一个语句(D)
AQ.front==Q.rear;BQ.front-Q.rear==Maxsize;
CQ.front+Q.rear==Maxsize;DQ.front==(Q.rear+1)%Maxsize;
31、设有一个递归算法如下:
intfact(intn)
{if(n<=0)return1;
elsereturnn*fact(n-1);
}
下面正确的叙述是(B)
A计算fact(n)需要执行n次递归Bfact(7)=5040
C此递归算法最多只能计算到fact(8)D以上结论都不对
32、设有一个递归算法如下
intx(intn){
if(n<=3)return1;
elsereturnx(n-2)+x(n-4)+1;
}
试问计算x(x(8))时需要计算(D)次x函数。
A8次B9次C16次D18次
33、设有广义表D(a,b,D),其长度为(B),深度为(A)
A∞B3C2D5
34、广义表A(a),则表尾为(C)
AaB(())C空表D(a)
35、下列广义表是线性表的有(C)
AE(a,(b,c))BE(a,E)CE(a,b)DE(a,L())
36、递归表、再入表、纯表、线性表之间的关系为(C)
A再入表>递归表>纯表>线性表B递归表>线性表>再入表>纯表
C递归表>再入表>纯表>线性表D递归表>再入表>线性表>纯表
37、某二叉树的前序和后序序列正好相反,则该二叉树一定是( B )的二叉树。
A空或只有一个结点 B高度等于其结点数
C任一结点无左孩子 D任一结点无右孩子
38、对于任何一棵二叉树T,如果其终端结点数为n0,度为2的结点为n2.,则(A)
An0=n2+1Bn2=n0+1Cn0=2n2+1Dn2=2n0+1
39、由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为(B)
A24B73C48D53
40、已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为da1,则第I个结点的地址为( A )。
Ada1+(I-1)*m Bda1+I*m Cda1-I*m Dda1+(I+1)*m
41、34具有35个结点的完全二叉树的深度为(A)
A5B6C7D8
42、对线性表进行折半搜索时,要求线性表必须(C)
A以链接方式存储且结点按关键码有序排列B以数组方式存储
C以数组方式存储且结点按关键码有序排列D以链接方式存储
43、顺序搜索算法适合于存储结构为(B)的线性表。
A散列存储B顺序存储或链接存储
C压缩存储D索引存储
44、采用折半搜索算法搜索长度为n的有序表时,元素的平均搜索长度为(C)
AO(n2)BO(nlog2n)CO(log2n)DO(n)
45、对于一个具有n个顶点和e条边的无向图,进行拓扑排序时,总的时间为(A)
AnBn+1Cn-1Dn+e
46、