一起答

自考计算机网络数据结构模拟试卷一

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 尾插法建表是将新结点插入到当前链表的表尾上,为此必须增加一个尾指针r,使其始终指向当前链表的尾结点。试写出尾插法建表的算法。函数头为:LinkListGreateListR(void)

  2. 已知稀疏矩阵采用带行表的三元组表表示,其形式说明如下:

    define MaxRow 100 //稀疏矩阵的最大行数

    typedef struct

    int i,j,v; //行号、列号、元素值

    }TriTupleNode;

    typedef struct{

    TriTupleNode data[MaxSize];

    int RowTab[MaxRow+1];//行表

    int m,n,t: //矩阵的行数、列数和非零元素个数

    }RTriTupleTable;

    下列算法f31的功能是:以行优先的顺序输入稀疏矩阵的非零元素(行号、列号、元素值),

    建立稀疏矩阵的带行表的三元组表存储结构请在空缺处填合适内容,使其成为一个完

    整的算法。(注:矩阵的行、列下标均从1起计)

    void f31(RTriTupleTable *R)

    {int i,k;

    scanf("%d %d %d", & R->m, R->n, &R->t);

    R→RowTab[1]=0;

    k=1;//k指示当前输人的非零元素的行号

    for(i=0:(1)i++)

    {scanf("% %d %d", (2) , (3) ,&R->data[i]. v);

    while(kdata[i]. i)

    { (4)

    R->RowTab[k]=i

    }

    }

    }

    (1)

    (2)

    (3)

    (4)

  3. 设输入为整数数组a[n],a[n],其中≤a[i

    void demo(int a[], int b], int c[], int k)

    {

    int i,

    for(i=0;i

    for(j=0:j

    for(i=: i

    for(j=n-1>=0--)

    {

    b[c[a[j]]-1]=a[j]:

    c[a[j]]—

    }

    (1)当标号①行的循环执行完后,c[i(0≤i

    (2)当标号②行的循环执行完后,c[i(≤i

    (3)算法执行后,b数组的内容有何特点?

    (4)当k=0(n)时,算法的时间复杂度是多少?

    (1)

    (2)

    (3)

    (4)

  4. 下列程序段search(a,n,k)是在数组a的前n(n>=1个元素中找出第k(1的值。这里假设数组a中各元素的值都不相同,在空缺处填写相应的语句

    #define MAXN 100

    int a[MAXN],n, k;

    int search(int],int n, int k)

    (int low, high,i,j,m,t;

    k--,low=0;high=n-11

    do {i-low;j-high ;t-aClow],

    do{while(i

    if(i<) a[i++]=];

    while(i=[]) i++:

    if(i

    }while(i

    a[i]-t:

    if (1)

    if(i

    }while( (4) );

    return(a[k]);

    }

    (1)

    (2)

    (3)

    (4)

  5. 下面是二分查找算法的非递归实现方法,在空缺处填入合适内容,使其成为一个完整的算法。

    int BinSearch(SeqList R, KeyType k, int n)

    {int low=, mid, high=n;//初始化上下界

    while(low<=high){

    mid=(low+high)/2;

    if(R[mid]. key==k)

    return mid,//查找成功,返回其下标

    if(R[mid]. key>k)

    (1) ;//修改上界

    Else (2) ;//修改下界

    }

    Return0;//查找失败,返回0值

    }

    (1)

    (2)

  6. 画出题图所示二叉树的中序线索链表的存储表示。

  7. 已知3阶B树如题图所示。

    (1)画出将关键字88插入之后的B树。

    (2)画出将关键字47和66依次插入之后的B树。

  8. 设散列表长度为11,散列函数h(x)=x%1,给定的关键字序列为:1,12,13,34,38,33,27,22,试画出用拉链法解决冲突时所构造的散列表。

  9. 假设二叉树包含的结点为1,3,7,2,12

    (1)画出两棵高度最大的二叉树

    (2)画出两棵完全二叉树,要求每个双亲结点的值大于其孩子结点的值。

  10. 在一般情况下用直接插入排序、直接选择排序和冒泡排序的过程中,所需移动记录次数最少的是( )

  11. a=(x,a,b,c,d),函数 head headtail()的运算结果是( )

  12. G是一个非连通无向图,共有28条边,则该图至少有( )个顶点。

  13. 待排序记录的存储方式一般有三种:顺序结构、( )和辅助表形式。

  14. 深度为k的二叉树至多有( )个结点(k≥1)

  15. 常用的解决冲突的方法有两大类,即开放定址法和( )

  16. 按中序遍历二叉排序树所得到的中序序列是一个( )有序序列。

  17. 邻接表是图的一种( )存储结构

  18. 具有10个顶点的无向图,边的总数最多为( )

  19. 在双链表中间插入一个结点,需要修改_( )个指针域。

  20. 设数组A[m]为循环队列Q的存储空间, front为队头指针,rear为队尾指针,采用少用一个元素空间的方法来解决队空和队满的判定问题则判定Q为空队列的条件是【】

    • A.(rear-front)%m==1
    • B.front=rear
    • C.(rear-front)%m=m-1
    • D.front==(rear+1)%m
  21. 线索二叉树中的线索是指【】

    • A.左孩子
    • B.右孩子
    • C.指针
    • D.标识
  22. 对下图所示的无向图,从顶点1开始进行深度优先遍历,可以得到的顶点访问序列为【】

    • A.1243576
    • B.1243567
    • C.1245637
    • D.1234576
  23. 一个队列的输入序列是abcd,则队列的输出序列是【】

    • A.acdb
    • B.abed
    • C.adcb
    • D.cbda
  24. 在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若next-next=head,则【】

    • A.p指向头结点
    • B.p指向尾结点
    • C.p的直接后继是头结点
    • D.p的直接后继是尾结点
  25. 下列关键字序列中,构成小根堆的是【】

    • A.{84,46,62,41,28,58,15,37}
    • B.{84,62,58,46,41,37,28,15}
    • C.{15,28,46,37,84,41,58,62}
    • D.{15,28,46,37,84,58,6241)
  26. 删除双向链表中间某个结点,需要修改【】个指针域。

    • A.1
    • B.2
    • C.3
    • D.4
  27. 已知有向图G=(V,E),其中V={v,v2,a,4,vg,v,v},e={v,>,,,,,G}的拓扑序列是【】

    • A.V1,V3,,,V2,Vs,V;
    • B.Vi ,V3, V2,V6,,Vs,
    • C.V1,V3,,, V2, V6,
    • D.v1,V2,V5,3,V4,V6,7
  28. 最不适合用作链队的链表是【】

    • A.只带队首指针的非循环双向链表
    • B.只带队首指针的循环双向链表
    • C.只带队尾指针的循环双向链表
    • D.只带队尾指针的循环单向链表
  29. 下面的程序段的时间复杂度为【】

    s=0;for(i=0;

    ifor(j=0;

    js=s+a[i][j];

    • A.(1)
    • B.O(m+n)
    • C.O(log2mn)
    • D.O(m#n)
  30. 二维数组a的每个元素是由6个字符组成的串,行下标的范围从0到8,列下标的范围从1到10,则存放a至少需要【】个字符。

    • A.90
    • B.180
    • C.270
    • D.540
  31. 如果将矩阵Anx的每一列看成一个子表,整个矩阵看成是一个广义表L,即L=((a1a21,,an1),(a1,22,an2),…,(a1na2n,am)),并且可以通过求表头head和求表尾tail的运算求取矩阵中的每一个元素,则求得a12的运算是【】

    • A.head(tail(head(L)))
    • B.head(head(head(L)))
    • C.tail(head(tail(L)))
    • D.head(head(tail(L)))
  32. 在计算机的存储结构中,逻辑上相邻的结点存储在物理位置上也相邻的连续存储单元里,称之为【】

    • A.逻辑结构
    • B.顺序存储结构
    • C.链式存储结构
    • D.散列存储结构
  33. 下列排序方法中,最好与最坏时间复杂度不相同的排序方法是【】

    • A.冒泡排序
    • B.直接选择排序
    • C.堆排序
    • D.归并排序
  34. 用单链表方式存储的线性表,存储每个结点需要两个域,一个是数据域,另一个是【】

    • A.当前结点所在地址域
    • B.指针域
    • C.空指针域
    • D.空闲域