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

2017年曲阜师范大学信息科学与工程学院859数据结构[专业硕士]考研题库

  摘要

一、算法设计题

1. 结点类型和存储结构如下:

试设计一个排序算法,要求不移动结点的存储位置,只在结点的count 字段记录结点在排序中的序号,并将排序结果按升序输出。

【答案】算法如下:

2. 元素集合己存入整型数组树T 的非递归算法

【答案】算法如下:

中,试写出依次取A 中各值

构造一棵二叉排序

3. 设计算法将一个带头结点的单链表A 分解为两个具有相同结构的链表B 、C ,其中B 表的结点为A 表中值小于零的结点,而C 表的结点为A 表中值大于零的结点(链表A 的元素类型为整型,要求B 、C 表利用A 表的结点)。

【答案】算法如下:

4. 假设串的存储结构如下所示,编写算法实现串的置换操作。

【答案】算法如下:

和t 是用一维数组存储的串,本算法将s 串第i 个字符开始连续j 个字符用t 串置换,操作

成功返回1, 否则返回0表示失败

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

【答案】算法如下:

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

//假定权值为整型

//建立顶点向量

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

法运行

//申请结点

//弧结点中杈值域

//算法结束

6. 起泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉);请给出上浮和下沉过程交替的起泡排序算法。

【答案】算法如下:

语言编写时间

7. 以三元组表存储的稀疏矩阵A ,B 非零元个数分别为m 和n 。试用类复杂度为O 述所用结构。

【答案】算法如下:

的算法将矩阵B 加到矩阵A 上去。A 的空间足够大,不另加辅助空间。要求描