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

2017年曲阜师范大学软件学院859数据结构考研仿真模拟题

  摘要

一、算法设计题

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

【答案】算法如下:

2. 二路插入排序是将待排关键字序列二路插入。编写实现2-路插入排序算法。

【答案】算法如下:

第 2 页,共 51 页

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

构造一棵二叉排序

中关键字分二路分别按序插入到辅助向量

赋给

再从

记录开始分

,其原则为,先将前半部和后半部(注:向量d 可视为循环表)

3. 已知关键字序列

(1)试写出一算法将

(2)利用(1)的算法写一个建大根堆的算法。 【答案】(1)算法如下:

4. 请运用快速排序思想,设计递归算法实现求n (n>l)个不同元素集合中的第

【答案】算法如下:

5. 请用流程图或高级语言表示算法。已知有向图有n 个顶点,请写算法,根据用户输入的数对,对于每条这样建立该有向 图的邻接表。即接受用户输入的(以其中之一为0标志结束)的边,申请一个结点,并插 入到的单链表中,如此反复,直到将图中所有边处理完毕。

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

第 3 页,共 51 页

是大根堆。

调整为大根堆;

小元素。

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

//输入顶点信息

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

6. 已知L 为链表的头结点地址,表中共有

个结点,从表中第i 个结点起到第m

个结点构成一个循环部分链表,设计将这部分循环链表中所有结点顺序完全倒置的算法。

【答案】算法如下:

第 4 页,共 51 页