当前位置:问答库>考研试题

2018年厦门大学计算机科学系408计算机学科专业基础综合之数据结构考研仿真模拟五套题

  摘要

一、算法设计题

1. 给出以十字链表作存储结构,建立图的算法,输入(i, j , V) , 其中i , j 为顶点号,v 为权值。

【答案】算法如下:

建立有向图的十字链表存储结构

假定权值为整型

建立顶点向量

当输入i 、j 、v 之一为0时,结

束算法运行

申请结点

弧结点中权值域

算法结束

2. 给定nxm 矩阵

并设

设计一算法判定x 的值是否在A 中,要求时间复杂度

为O(m+n) 。

【答案】算法如下:

//n*m矩阵A ,行下标从a 到b ,列下标从c 到d ,本算法査找x 是否在矩阵A 中

//flag是成功査到x 的标志

//假定x 为整型

(“矩阵A 中无

算法search 结束。

元素\n",x) ;

3. 请用流程图或高级语言表示算法。已知有向图有n 个顶点,请写算法,根据用户输入的数对建立该有向图的邻接表。即接受用户输入的

(以其中之一为0标志结束) ,对于每条这样的

边,申请一个结点,并插入到的单链表中,如此反复,直到将图中所有边处理完毕。

提示:先产生邻接表的n 个头结点(其结点数值域从1到n) 。 【答案】算法如下:

建立有向图的邻接表存储结构

题目要求两顶点之一为0表示结束

4. 设二叉树用二指针结构存储(可以是动态存储结构) ,元素值为整数,且元素值无重复,请编写子程序,求出以元素值等于某个给定的整数的结点为根的子树中的各个叶结点。

【答案】算法如下:

在二叉树t 中査找结点值等于x 的结

结束

统计以t 为根结点的子树的叶结点数

n0

. 叶结点

输出并计数

结束

:

输入顶点信息

5. 在一个循环链队中只有尾指针(记为rear ,结点结构为数据域data ,指针域next) ,请给出这种队列的入队和出队操作的实现过程。

【答案】算法如下:

//rear是带头循环链队列的尾指针,本算法将元素X 插入到队尾

//申请结点空间

//将s 结点链入队尾

//rear指向新队尾

//rear是带头结点的循环链队列的尾指针

//本算法执行出队操作,成功输出队头元素;否则给出出错信息

//s指向队头元素

//队头元素出队

//空队列

二、应用题

6. 某16位计算机主存按字节编码。存取单位为16位; 采用16位定长指令格式; CPU 采用单总线结构, 主要部分如下图所示。图中R0〜R3为通用寄存器; T 为暂存器; SR 为移位寄存器, 可实现直送(mov)、左移一位(left)、右移一位(right)3种操作, 控制信号为Srop , SR 的输出信号Srout 控制; ALU 可实现直送A(mova)、A 加B(add)、A 减B(sub)、A 与B(and)、A 或B(or)、非A(not)、A 加1(inc)7种操作, 控制信号为ALUop 。

请回答下列问题。