14.在一个长度为n的线性表中的第i个元素(1≤i≤n)之前插入一个元素时,需向后移动(n-i+1)个元素。
15.在具有n个单元的循环队列中,队满时共有(n-1)个元素。
16.带有一个头结点的单链表Head为空的条件是(Head->next==null)。
17.在一个单链表中删除指针p所指向结点的后继结点时,需要把(p->next->next)值赋给p->next指针域。
18.一个顺序循环队列存于a[M]中,假定队首和队尾指针分别为front和rear,则判断队空的条件为(a.front==a.rear),判断队满的条件为((a.rear+1)%M==a.front)。
19.在双向链表中,每个结点有两个指针域,一个指向其(前驱)结点,另一个指向其(后继)结点,最后一个结点的(后继结点)指针域为空。
*20.若D=((a,(b,c)),e,a),则Head(D)=(),Tail(D)=(),Head(Tail(D))=()。
(本人不会)
21.在循环链表中,每个结点有(一个)个指针域,指向其(后继)结点,最后一个结点的指针域(为空)。
*22.若S=(a,(b,c),e,d),则Head(S)=(),Tail(S)=(),Head(Tail(S))=()。
(本人不会)
二、选择题
1.在一个单链表中,若q所指结点是p所指结点的前驱结点,若在q与p之间插入一个s所指的结点,则执行(A)。
A.s->link=p->link;p->link=s;B.p->link=s;s->link=q;
C.p->link=s->link;s->link=p;D.q->link=s;s->link=p;
2.对于顺序存储的队列,存储空间大小为n,头指针为F,尾指
针为R。
若在逻辑上看一个环,则队列中元素的个数(A)。
A.R-FB.n+R-FC.(R-F+1)modnD.(n+R-F)modn
3.如下陈述中正确的是(A)。
A.串是一种特殊的线性表B.串的长度必须大于零
C.串中元素只能是字母D.空串就是空白串
4.若让元素1,2,3依次进栈,则出栈次序不可能出现(C)
的情况。
A.3,2,1B.2,1,3C.3,1,2D.1,3,2
5.判定一个队列QU(最多元素为m0)为空的条件是(C)。
A.QU->rear-QU->front==m0B.QU->rear-QU->front-1==m0
C.QU->front==QU->rearD.QU->front==QU->rear+1
6.设目标串S=‘abcdef’,模式串p=‘de’,则第(C)次匹配成功。
A.1B.2C.4D.5
7.设字符串s1=‘ABCDEFG’,S2=‘PQRST’,T,sub1,sub2为空串。
则运算s=Concat(T,SubString(sub1,s1,2,SubLength(s2)),SubString(sub2,s1,SubLength(s2),2))后的串T值为(D)。
A.‘BCDEF’B.‘BCDEFG’C.‘BCPQRST’D.‘BCDEFEF’
8.一个顺序线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是(B)。
A.100B.108C.110D.120
9.非空的循环单链表head的尾结点(由p所指向)满足(C)。
A.p->next==NULLB.p==NULL
C.p->next==headD.p==head
10.在一个链队中,假设f和r分别为队首和队尾指针,则删除
一个结点的运算时(C)。
A.r=f->next;B.r=r->next;
C.f=f->next;D.f=r->next;
11.在一个长度为n的线性表中,删除值为x的元素时,需要比较元素和移动元素的总次数为(C)。
A.(n+1)/2B.n/2C.nD.n+1
12.在一个单链表中,若要在p所指向的结点之后插入一个新结点,则需要相继修改(B)个指针域的值。
A.1B.2C.3D.4
13.线性结构中,每个结点(C)。
A.无直接前驱B.只有一个直接前驱和个数不受限制的直接后继
C.只有一个直接前驱和后继D.有个数不受限制的直接前驱
和后继
14.队列是限定在(D)进行操作的线性表。
A.中间B.队头C.队尾D.端点
15.设串S1=“ABCDEFG”,S2=“PQRST”,函数StrCat(x,y)返回x和y串的连接串,函数StrSub(S,i,j)返回串S的从序号i的字符开始的j个字符组成的子串,StrLen(S)返回串S的长度,则StrCat(StrSub(S1,2,StrLen(S2)),StrSub(S1,StrLen(S2),2))的结果串是(D)。
A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF
16.学生成绩表是一种(C)结构。
A.图形B.树形C.线性D.集合
17.在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算时(C)。
A.f->next=s;f=s;B.r->next=s;r=s;C.s->next=r;r=s;D.s->next=f;f=s;
18.向顺序表中的i位置处插入元素,下面哪项能够准确的表明
i的位置是合法的。
(D)
A.i<=1||i>l->length+1B.i>=1
C.i>=l->length+1D.1<=i<=l->length+1
19.设线性链表中结点的结构为(data,next),已知指针q所指结点是指针p所指结点的直接后继,若在*q和*p之间插入结点*s,则应执行(A)操作。
A.s->next=p->next;p->next=s;B.q->next=s;s->next=p;
C.p->next=s->next;s->next=p;D.p->next==s;s->next=q;
20.一个栈的入栈序列为a,b,c,d,e,则出栈序列不可能的是(C)。
A.edcbaB.dcbaeC.dceabD.abcde
21.如果以链表作为栈的存储结构,则出栈操作时(B)。
A.必须判别栈是否满B.必须判别栈是否为空
C.必须判别栈元素类型D.可不做任何判断
22.设有两个串p和q,求q在p中首次出现的位置的运算称为(B)。
A.连接B.模式匹配C.求子串D.求串长
23.p指向线性链表中的某一结点,则在线性链表的表尾插入结
点S的语句序列是(A)。
A.while(p->next!
=NULL)p=p->next;p->next=s;s->next=NULL;
B.while(p!
=NULL)p=p->next;p->next=s;s->next=NULL;
C.while(p->next!
=NULL)p=p->next;s->next=p;p->next=NULL;
D.while(p!
=NULL)p=p->next->next;->next;p->next=s;s->next=p
24.向顺序栈中压入新元素时,应当(A)。
A.先移动栈顶指针,再存入元素B.先存入元素,再移动栈顶指针
C.先后次序无关紧要D.同时进行
25.假定一个顺序队列的队首和队尾指针分别为f和r,则判断队空的条件为(D)。
f+1==rB.r+1==fC.f==0D.f==r
26.栈的插入和删除操作在(A)进行。
A.栈顶B.栈底C.任意位置D.指定位置
27.栈和队列的共同点是(C)。
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素D.没有共同点
28.若6行8列的数组以列序为主序顺序存储,基地址