频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

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

来源: 作者: 出处:巧巧读书 2006-05-20 进入讨论组

1 16分)

    填空

  设只包含要根结点的二叉树的高度为0,则高度为k的二叉树的最大结点数为        ,最小结点数为          

  某二叉树结点的对称序序列为ABCDEFG,后序序列为BDCAFGE,则该二叉树结点的前序序列为              ,该二叉树对应的树林包括         棵树。

  求具有最小带权外部路径长度的扩充二叉树的算法称为             算法,对于给出的一组权W={1012162130},通过该算法求出的扩充二叉树的带权外部路径长度为             

  设有关键码序列(QHCYQAMSRDFX),要按照关键码值递增的次序进行排序,若采用初始步长为4Shell排序法,则一趟扫描的结果是           ;若采用以第一个元素为分界元素的快速排序法,则一趟扫描的结果是              

  2 10分)

    请简要回答下列问题

  什么是抽象数据类型?试举一例说明之。

  什么是广义表?请简述广义表与线性表的主要区别。

  3 6分)

    给定关键码序列(2625203321244520442382931),要用散列法进行存储,规定负载因子a=0.6

  请给出除余法的散列函数。

  用开地址线性探查法解决碰撞,请画出插入所有的关键码后得到的散列表,并指出发生碰撞的次数。

  4 6分)

    本题要求在检索各结点的概率不相等的条件下构造最佳二叉排序树。给出关键码集合

    { B,     E,     H}

     key1   key2   key3

    以及权的序列

    ( 9    4    5    8    6    1    3)

     p1   p2   p3   q0   q1   q2   q3

    请构造最佳二叉排序树。

  5 12分)

  请画出往图15B-树中插入一个关键码390后得到的B-树,以及再删除关键码150后得到的B-树。

  包括n个关键码的mB-树在一次检索中最多涉及多少个结点?(要求写出推导过程)

北京大学1997年研究生入学考试 数据结构试题(图一)

5

  6 10分)

    如图2所示是一棵正在进行插入运算的AVL树,关键码70的插入使它失去了平衡,按照AVL树的插入方法,需要对它的结构进行调整以恢复平衡。

  ①请画出调整后的AVL树。

  ②假设AVL树用llink-rlink法存储,T是指向根结点的指针、请用PASCAL(或C)语句表示出这个高速的过程。

    (说明:不必写出完整的程序,只需用几个语句表示出在本题所给的具体情况下调整过程中指针的变化。在调整过程中还有两个指针变量pq可以使用)。

北京大学1997年研究生入学考试 数据结构试题(图二)

6

  7 16分)

    请仔细阅读下面的堆排序算法。待排序记录存储在一维数组中,说明如下:

    TYPE node =RECORD

               key:integer;

               info:datatype

          END

          heaptype = ARRAY [1..n0] OF node;

    过程heapsort的功能是将数组heap中的前n个记录按关键码值递减的次序排序。heapsort调用sift,sift的参数heap,hr具有如下的含义:调用sift时,以heap[h+1],heap[h+2],……,heap[r/2]为根的子树已经是堆;sift执行后,以heap[h],heap[h+1],heap[h+2],……heap[r/2]为根的子树都成为堆。

    PROCEDURE sift (VAR heap:heaptype; h,r:integer);

        VAR i,j:integer;

            x:node;

            finish:boolean;

        BEGIN

            i:=h;

            x:=heap[i];

            j=2*i;

            finish:=false;

            WHILE 北京大学1997年研究生入学考试 数据结构试题(图三)DO

            BEGIN

                IF(j<r) AND (heap[j].key>heap[j+1].key)

                THEN j:=j+1;

                IF x.key > heap[j].key

                THEN BEGIN

                    北京大学1997年研究生入学考试 数据结构试题(图四)

                END

                ELSE finish:=true;

            END;

            北京大学1997年研究生入学考试 数据结构试题(图五)

        END;

    PROCEDURE heapsort (VAR heap:heaptype; n:integer);

        VAR h,r,i,j:integer;

            x:node;

        BEGIN

            FOR h:=n DIV 2 DOWNTO 1 DO

                北京大学1997年研究生入学考试 数据结构试题(图六)

            FOR r:=n DOWNTO 2 DO

            BEGIN

                x:=heap[1];

                heap[1]:=heap[r];

                heap[r]:=x;

                北京大学1997年研究生入学考试 数据结构试题(图七)

            END

        END;

  请在sift过程和heapsort过程的空缺处填入适当内容,使它们能正确工作。

  若调用heapsort的参数值n=10,那么在heapsort的执行过程中sift过程被调用了多少次?

  8 24分)

    试设计一个算法解决地图着色判断问题。

    设一幅地图有n个区域(例如,省)。用不多于4种颜色对这些区域进行着色,着色应满足的要求是相邻的区域具有不同的颜色。你的算法以一种着色方案(即哪一个区域着什么颜色)为输入,算法对该着色方案进行考察,若满足着色要求,则输出true,否则输出false

  用自然语言和PASCAL(或C)语言描述你为解决问题而设计的数据结构(逻辑结构,存储结构)。数据结构的设计应考虑对问题的清楚描述和算法的效率。

  用类PASCAL(或C)语言写出你的算法。算法应简洁、高效。对算法中的参数、变量、语句做必要的注释,以增加可读性。

  简单分析你的算法的空间开销和时间开销。

打开: http://www.qqread.com/data-structure/v974111102.html 更多文章 更多内容请看数据结构数据结构试题数据结构相关文章专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章