A. s->next=p->next; p->next=s; B. p->next=s->next; s->next=p;
B. q->next=s; s->next=p; C. p->next=s; s->next=q;
12. 在一个单链表中,若 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; C. p->next=s; s->next=p;
13. 在一个单链表中,若删除 p 所指结点的后续结点,则执行____。
A. p->next= p->next->next; B. p= p->next; p->next= p->next->next;
C. p->next= p->next; D. p= p->next->next;
14. 从一个具有 n 个结点的单链表中查找其值等于 x 结点时,在查找成功的情况下,需平均
比较____个结点。
A. n B. n/2 C. (n-1)/2 D. (n+1)/2
15. 在一个具有 n 个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是__ __。
A. O(1) B. O(n) C. O (n
2
) D. O (nlog
2
n)
16. 给定有 n 个元素的向量,建立一个有序单链表的时间复杂度是__ __。
A. O(1)) B. O(n) C. O (n
2
) D. O (n*log
2
n)
综合题类型:
17 .设顺序表 va 中的数据元数递增有序。试写一算法,将 x 插入到顺序表的适当位置上,
以保持该表的有序性。
18 . 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除
表中所有大于 x 且小于 y 的元素(若表中存在这样的元素)同时释放被删除结点空间。
19. 试写一算法,实现单链表的就地逆置(要求在原链表上进行)。
20.有两个循环链表,链头指针分别为 L1 和 L2,要求写出算法将 L2 链表链到 L1 链表之
后,且连接后仍保持循环链表形式。
21. 设一个带头结点的单向链表的头指针为 head,设计算法,将链表的记录,按照 data 域
的值递增排序。
22. 在带头结点的循环链表 L 中,结点的数据元素为整型,且按值递增有序存放。给定两个
整数 a 和 b,且 a<b,编写算法删除链表 L 中元素值大于 a 且小于 b 的所有结点。
第 3 栈和队列
一、基本概念
1、栈的定义、特点
2、顺序栈和链栈的进栈和退栈操作;栈空和栈满的判定条件
3、队列的定义和特点
4、循环队列、链队列的出队和入队操作、判定队列为空、队列为满的条件