第 1 章 绪论
1. 算法的计算量的大小称为计算的( B )。
A.效率 B. 复杂性 C. 现实性 D. 难度
2. 算法的时间复杂度取决于( A)
A.问题的规模 B. 待处理数据的初态 C. A 和 B
3. 数据结构是研讨数据的_( 1 )特性 _和_ ( 2 )结构 _ ,以及它们之间的相互关系,并对与这种结构定义
相应的_( 3 )数据结构 _,设计出相应的( 4 )基本操作 _ 。
4.解释和比较以下各组概念
(1)抽象数据类型及数据类型 (2)数据结构、逻辑结构、存储结构
(3)抽象数据类型(4)算法的时间复杂性
(5)算法(6)频度
第 2 章 线性表
1.下述哪一条是顺序存储结构的优点?( D )
A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示
2.下面关于线性表的叙述中,错误的是哪一个?( B )
A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.非空的循环单链表 head 的尾结点 p↑满足( A )。
A.p↑.link=head B.p↑.link=NIL C.p=NIL D.p= head
4.在双向链表指针 p 的结点前插入一个指针 q 的结点操作是( C )。
A. p->Llink=q;q->Rlink=p;p->Llink->Rlink=q;q->Llink=q;
B. p->Llink=q;p->Llink->Rlink=q;q->Rlink=p;q->Llink=p->Llink;
C. q->Rlink=p;q->Llink=p->Llink;p->Llink->Rlink=q;p->Llink=q;
D. q->Llink=p->Llink;q->Rlink=q;p->Llink=q;p->Llink=q;
5.在单链表指针为 p 的结点之后插入指针为 s 的结点,正确的操作是:( B )。
A.p->next=s;s->next=p->next; B. s->next=p->next;p->next=s;
C.p->next=s;p->next=s->next; D. p->next=s->next;p->next=s;
6.对于一个头指针为 head 的带头结点的单链表,判定该表为空表的条件是( B )
A.head==NULL B.head→next==NULL C.head→next==head D.head!=NULL
7.在一个长度为 n 的顺序表中第 i 个元素(1<=i<=n)之前插入一个元素时,需向后移动 __N-
I+1______个元素。
8. 已 知 指 针 p 指 向 单 链 表 L 中 的 某 结 点 , 则 删 除 其 后 继 结 点 的 语 句 是 : _p->next=p->next-
>next_______
9. 下面是用 c 语言编写的对不带头结点的单链表进行就地逆置的算法,该算法用 L 返回逆置后的链表的
头指针,试在空缺处填入适当的语句。
void reverse(linklist &L){
p=null;q=L;
while(q!=null)
{ (1)t=q ; q->next=p;p=q;(2)q=t->next ___ ; }
(3) L=q_____;
}
评论0