1 . 容易 (6分)
与非循环单链表相比,循环单链表的主要优点是______。
A. 不再需要头结点
B. 已知某个结点能够容易找到它的前驱结点
C. 在进行插入、删除操作时,能更好地保证链表不断开
D. 从表中任意结点出发都能遍历整个链表
回答正确
答案
从表中任意结点出发都能遍历整个链表
2 . 容易 (6分)
非空循环单链表head的尾结点p满足______。
A. p.next==null
B. p==null
C. p.next==head
D. p==head
回答正确
答案
p.next==head
3 . 容易 (6分)
在长度为n(n≥1)的循环单链表L中,删除尾结点的时间复杂度为______。
A. O(1)
B. O(n)
C. O(n2)
D. O(nlog2n)
回答正确
答案
O(n)
4 . 容易 (6分)
有两个长度为n(n>1)的不带头结点的单链表,结点类型相同,A是非循环的,B是循环的,则以下正确的是______。
A. 对于这两个链表来说,删除首结点的时间复杂度都是O(1)
B. 对于这两个链表来说,删除尾结点的时间复杂度都是O(n)
C. 循环单链表B比非循环单链表A占用更多的内存空间
D. 以上都不对
回答正确
答案
对于这两个链表来说,删除尾结点的时间复杂度都是O(n)
5 . 容易 (6分)
有一个非空循环双链表,在结点p之前插入结点q的操作是______。
A. p.prior=q; q.next=p; p.prior.next=q; q.prior=p.prior;
B. p.prior=q; p.prior.next=q; q.next=p; q.prior=p.prior;
C. q.next=p; q.prior=p.prior; p.prior=q; p.prior.next=q;
D. q.next=p; q.prior=p.prior; p.prior.next=q; p.prior=q;
回答正确
答案
q.next=p; q.prior=p.prior; p.prior.next=q; p.prior=q;
解析
暂无解析
学生答案
D. q.next=p; q.prior=p.prior; p.prior.next=q; p.prior=q;
6 . 容易 (6分)
有一个非空循环双链表,在结点p之后插入结点q的操作是q.next=p.next; p.next=q; q.prior=p; ______。
A. p.next=q;
B. q.prior.next=q;
C. q.next.prior=q;
D. q.next.next=q;
回答正确
答案
q.next.prior=q;
7 . 容易 (6分)
在长度为n的______ 上,删除尾结点的时间复杂度为O(1)。
A. 单链表
B. 双链表
C. 循环单链表
D. 循环双链表
回答正确
答案
循环双链表
8 . 容易 (6分)
若元素a、b、c、d、e、f依次进栈,允许进栈、退栈的操作交替进行,但不允许连续3次出栈工作,则不可能得到的出栈序列是______。
A. dcebfa
B. cbdaef
C. bcaefd
D. afedcb
回答正确
答案
afedcb
栈:先入后出
9 . 容易 (6分)
一个栈的进栈序列是a、b、c、d、e,则栈的不可能的输出序列是______。
A. edcba
B. decba
C. dceab
D. abcde
回答正确
答案
dceab
10 . 容易 (6分)
已知一个栈的进栈序列是1,2,3,…,n,其输出序列的第一个元素是i(1≤i≤n),则第j(1≤j≤n)个出栈元素是______。
A. i
B. n-i
C. j-i+1
D. 不确定
回答正确
答案
不确定
11 . 容易 (5分)
已知一个栈的进栈序列是1,2,3,…,n,其输出序列是p1,p2,…,pn,若p1=n,则pi的值______。
A. i
B. n-i
C. n-i+1
D. 不确定
回答正确
答案
n-i+1
12 . 容易 (5分)
设有5个元素进栈序列是a、b、c、d、e,其输出序列是c、e、d、b、a,则该栈的容量至少是______。
A. 1
B. 2
C. 3
D. 4
回答正确
答案
4
13 . 容易 (5分)
设n个元素进栈序列是1、2、3、…、n,其输出序列是p1、p2、…、pn,若p1=3,则p2的值为______。
A. 一定是2
B. 一定是1
C. 不可能是1
D. 以上都不对
回答正确
答案
不可能是1
14 . 容易 (5分)
当用一个数组data[0..n-1]存放栈中元素时,栈底最好______。
A. 设置在data[0]处
B. 设置在data[n-1]处
C. 设置在data[0]或data[n-1]处
D. 设置在data数组的任何位置
回答正确
答案
设置在data[0]或data[n-1]处
15 . 容易 (5分)
若一个栈元素用数组data[1..n]存储,初始栈顶指针top为n,则以下元素x进栈最适合的操作是______。
A. top++; data[top]=x;
B. data[top]=x; top++;
C. top--; data[top]=x;
D. data[top]=x; top--;
回答正确
答案
data[top]=x; top--;
16 . 容易 (5分)
若一个栈元素用数组data[1..n]存储,初始栈顶指针top为n,则以下出栈元素x最适合的操作是______。
A. x=data[top]; top++;
B. top++; x=data[top];
C. x=data[top]=x; top--;
D. top--; x=data[top];
回答正确
答案
top++; x=data[top];
17 . 容易 (5分)
若一个栈元素用数组data[1..n]存储,初始栈顶指针top为0,则以下元素x进栈最适合的操作是______。
A. top++; data[top]=x;
B. data[top]=x; top++;
C. top--; data[top]=x;
D. data[top]=x; top--;
回答错误
答案
top++; data[top]=x;
18 . 容易 (5分)
若一个栈元素用数组data[1..n]存储,初始栈顶指针top为0,则以下出栈元素x最适合的操作是______。
A. x=data[top]; top--;
B. x=data[top]; top++;
C. top--; x=data[top];
D. top++; x=data[top];;
回答正确
答案
x=data[top]; top--;