北京邮电大学1999年研究生入学考试 数据结构试题

来源: 作者: 2005-09-02 出处:pcdog.com

注意事项:

 

    1.答案一律写在答题纸上;

    2.答案卷应字迹清楚、语义确切;

    3.算法应说明基本思路,应对主要数据类型、变量给出说明,所写算法应结构清晰、简明易懂,应加上必要的注释;

    4.算法可用(类)PASCAL语言、C语言等你所熟悉的高级语言编写,但要注明语种。

  1 10分)

    选择填空

  字符串’ababaabab’nextval

    A.(010104101      B.010102101,)

    C.(010100011,)     D.010101011

  ②广义表A=a,b,(c,d),(e,(f,g)),则下面式子的值为    

    Head(Tail(Head(Tail(Tail(A)))))

    A.(g    B.(d)    C.c    D.d

  输入序列为(ABCD),不可能得到的输出序列有        

    A.(ABCD  B.(DCBA  C.(ACDB  D.(CABD

  散列函数有一个共同性质,即函数值应按     取其值域的每一个值;

    A.最大概率   B.最小概率   C.同等概率   D.平均概率

  直接插入排序在最好情况下的时间复杂度为       

    A. O(logn)   B. O(n)    C. O(n*logn)    D(n2)

  2 10分)

    判断下列叙述是否正确

  ①(101884670343945586610)是堆;

  将一棵树转换成二叉树后,根结点没有左子树;

  用树的前序遍历和中序遍历可以导出树的后序遍历;

  即使对不含相同元素的同一输入序列进行两组不同的、合法的入栈和出栈组合操作,所得的输出序列也一定相同;

  哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离很较近。

  3 10分)

    有一高个比他人都至少高出一头,找他的人都说“根本不用与别人比较,一眼就能找到他”,你认为此话正确吗?为什么?请简要描述两种求N个数中最大值的方法,并给出所需的最少比较次数。

  4 10分)

    1是用邻接表存储的图,画出此图,并写出从C点开始按深度优先遍历该图的结果。

北京邮电大学1999年研究生入学考试 数据结构试题

4

  510分)

    下面是求无向连通图的最小代价生成 树的一种算法:

    将图中所有边按权重从大到小排序为(e1,e2,,em)

    i:=1;

    While (所剩边数≥顶点数)

    Begin

        从图中删去ei

        若图不再连通,则恢复ei

             i:=i+1

    End

    试证明这个算法所得的图是原图的最小代价生成树。

    6 10分)

    已知无向图GG’互为补图(结点相同、边不重叠、两图合起来为完全图),试证明GG’是连通的。

    7 10分)

    用序列(468845397058101106634)建立一个排序二叉树,画出该树,并求在等概率情况下查找成功的平均查找长度。

    8 10分)

    写出下面程序段的运行结果。

    Program Ex(Input, Output);

    type

        Ttt=Array[1..20] OF Integer;

    Var

        I,J,K,L,N:Integer;

        A:Ttt;

    Function P (Var A:Ttt; Var M,N:Integer):Integer;

    var

        X,Y,Z:Integer;

    Begin  

        If N=1 Then 

        Begin

            m:=1;

            p:=a[1]

        End Else

        Begin

            X:=N;

            N:=N-1;

            Y:=P(A,Z,N);

            N:=X;

            If A[N]>=Y Then

            Begin

                M:=N;

                P:=A[N]

            End Else

            Begin

                M:=Z;

                P:=Y

            End

        End

    End;

    Begin

        Readln(N);

        For I:=1 To N Do Read(A[I]);

        Readln;

        L:=N;

        For I:=1 To L Do

        Begin

            K=P9A,J,N);

            A[J]:=A[N];

            A[N]:=K;

            N:=N-1

        End;

        For I;=1 To L Do Write(A[I]:3);

        Writeln;

    End;

    输入数据为:

    8

    6 1 8 4 3 5 2 7

  9 10分)

    已知二叉树用下面的顺序结构存储,写出中序遍历该二叉树的算法。

    Type

    Array [1..maxn] of 

    Record

        Data:Char;    //存结点值

        Lc,Rc:Integer  //左、右孩子下标,0表示无左、右孩子

    如树T=ABDE),C#FHI)))存储如表1所示:

T的存储

              1      2     3      4     5     6      7     8     9

A

B

C

D

E

F

G

H

I

2

4

0

0

0

8

0

0

0

3

5

6

0

7

9

0

0

0

  10 10分)

    试写出以带头结点单链表为存储结构实现简单选择排序的算法。

 


更多内容请看PCdog.com--数据结构数据结构试题数据结构相关文章专题
上一篇:上海交通大学1999年研究生考试数据结构及程序设计技术试题
下一篇:中国科学院软件研究所1999年研究生入学考试 数据结构与C语言试题