清华大学1997计算机专业考研真题

发布时间:2021-06-06

考研真题

清华大学97计算机专业考研试题

一、对于一个使用邻接表存储的带权有向图G ,试利用深度优先搜索放法,对该图中所有顶点进

行拓扑排序。若邻接表的数据类型定义为Graph,则算法的首部为:

FUNCTION dfs-toposort(G:Graph):boolean;

若函数返回true,则表示拓扑成功,图中不存在环;若函数返false,则图中存在环,拓扑排

序不成功 。在这个算法中嵌套用一个递归的深度优先搜索算法:

PROCEDURE dfs(G:Graph; V:vtxnum);

在遍历图的同时进行拓扑排序。其中,vtxnum是顶点号

(1)给出该图的邻接表定义; (4分)

(2)定义在算法中使用的全局辅助数组; (4分)

(3)写出拓扑排序的算法。 (10分)

二、设有一头指针为L的带有表结点的非循环双向链表,其每个结点中除有pred(前驱指针),

data(数据)和next(后继指针)域外,还有一个访问频度域freq。在链表被使用前,其值均

初始化为零。每当在链表中进行一次Locate(L,x)运算时,令元素值为x的结点中freq域的值

增1,并使此链表中结点保持按访问频度非增(递减)的顺序排序,同时最近访问的结点排

在频度相同的结点的最后,以便使频繁访问的结点总是靠近表头。试编写符合上述要求的

Locate(L,x)运算的算法,该运算为函数过程,返回找到结点的地址,类型为指针型。 (10分)

三、已知二叉树的链表存储结构定义如下:

TYPEbitreptR=^bitrenode;

bitrenode=RECORD

data:char;

lchild,rchild:butreptr

END;

编写一个递归算法,利用叶结点中空的右链指针域rchild,将所有叶结点自左至右链接成一

个单链表,算法返回最左叶结点的地址(链头)。 (10分)

四、设目标为S=“abcaabbcaaabababaabca”,模是为P=“babab”,

(1)手工计算模式P的nextval数组的值; (5分)

(2)写出利用求得的 nextval数组,按KMP算法对目标S进行模式匹配的过程。 (5分)

五、对于一个对称矩阵采用压缩存储,只存放它的上三角部分,并按列存放。例如对于一个 n*n的对称矩阵A,

考研真题

用一个一维数组B来存放它的上三角部分:

B=[A11,A12,A22,A13,A23,A33,A14。。。。。。。。,A1n,A2n。。。。。。,Ann]

同时有两个函数:MAX(i,j)和MIN(i,j),分别计算下标i和j中的大者与小者。试利用它门给出求任意一个Aij在B中存放位置的公式。(若式中没有MAX(i,j)和MIN(i,j)则不给分)。 (10分)

六、有一棵中序遍历二叉树,如下图(a)所示

d^成为

的A^左孩子,原来A^的左孩子B^变成A^的右孩子C^的左孩子,如图(B)所示 (树中的线索自行画出0。试针对图中的实例写出实现插入的几条语句。

(2)现在想在插入后的中序线索二叉树中删去A^右孩子C^并用C^的左孩子填补原来的c↑的位 置,如图(c)所示。试写出实现删除的几条语句。 ( 15分)

七、设有一组数据black,blue,green,purple,red,white,yellow,它们的查找概率分别为

0.10,0.08,0.12,0.05,0.20,0.25,0.20. 试以它们的查找概率为权值,构造一棵次查找树,并计算其查找成功的平均查找长度。 (12分)

八、设有11个长度(即包含记录个数)不同的归段,它们所包含的记录个数分别为 25,40,16,38,77,64,53,88,9,48,98.

试根据它们做4路平均归并,要求:

(1)指出总的归并趟数; (3分)

(2)构造最佳归并树; (8分)

(3)根据最佳归并树计算每一趟及总的读记录数。 (5分) (a) (b) (C) (1)现要把一棵根指针为d 的中序线索二叉树插在另一棵中序先索二叉树中,使

清华大学1997计算机专业考研真题.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219