第1章 绪论
1、填空题
1.常见的数据结构有集合,_线性__结构,__树形___结构,__图形__结构等四种。
2.常见的存储结构有__顺序存储_______结构,__链式存储____结构等两种。
3.数据的基本单位是_数据元素___,它在计算机中是作为一个整体来处理的。
4.数据结构中的结构是指数据间的逻辑关系,常见的结构可分为两大类,__线性结构____和__非线性结构___。
2、选择题
1. 算法的计算量的大小称为计算的(  B  )。
A.效率          B. 复杂性      C. 现实性          D. 难度
2. 算法的时间复杂度取决于(C
A.问题的规模      B. 待处理数据的初态      C. A和B      D. 以上都不对
3.计算机算法指的是(1)(c),它必须具备(2)(B) 这三个特性。
(1) A.计算方法    B. 排序方法        C. 解决问题的步骤序列      D. 调度方法
(2) A.可执行性、可移植性、可扩充性    B. 可执行性、确定性、有穷性
C. 确定性、有穷性、稳定性          D. 易读性、稳定性、安全性     
4. 下面关于算法说法错误的是(  D
A.算法最终必须由计算机程序实现
B.为解决某问题的算法同为该问题编写的程序含义是相同的
C. 算法的可行性是指指令不能有二义性          D. 以上几个都是错误的
3、应用题
1、给出以下算法的时间复杂度.
void fun(int n)
{
    int i=1,k=100;
    while(i<n)
    {
        k=k+1;
        i=i+2;
    }
}
时间复杂度为____O(n)_____。
2、给出以下算法的时间复杂度.
void fun2(int n)
{
    int i=1,k=100;
    while(i<n)
    {
        i=i*10;
        k=k+1;
    }
}
时间复杂度为____O(log n)二叉树公式___________。
第2章 线性表
1、填空题
1. 线性表按照存储结构不同主要有两种实现方式,一种是__顺序_表,另一种是______表。
2.顺序表采用__随机___访问机制对数据元素进行访问。
3.若在单链表结点p的后面插入一个新的结点s,则其操作序列为:
①____s->next=p->next_____________;
②____p->next=s___________________;
4.在单向链表中,若要删除某个结点p,一般要到__p的前趋__结点,才能实现该操作。
2、选择题
1.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是  A 
(A)n    (B)2n-1   (C)2n    (D)n-1
2.在单链表中,如果在结点p之后插入一个新结点s,其操作为  A  
(A)s->next=p->next; p->next=s;
(B)p->next=s; s->next=p->next;
(C)s->next=p; p->next=s->next;
(D)p->next=s; s->next=p;
3.若长度为n的线性表采用顺序存储结构,在其第i个位置删除一个元素的算法的平均时间复杂度为(  C  )。(1≤i≤n)
A.O(0)    B.O(1)    C.O(n)    D.O(n2)
4. 若长度为n的线性表采用顺序存储结构,在其第i个位置前插入一个新元素需要移动的元素个数为B  )。(1≤i≤n+1)
A.n-i  B.n-i+1    C. i    D.n-i-1
3、判断题
1.线性表中每一个元素都有一个前驱和一个后继。( ×  )
2. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。(  ×  )
3. 顺序存储方式的优点是存储密度大,插入、删除运算效率高。(  ×  )
4、程序设计题
1、单链表的结点结构定义如下:
struct LinkNode
{
    LinkNode *next;