实验五 图
一、实验目的
1.掌握图的基本存储方法。
2.掌握有关图的操作算法并用高级语言实现。
3.熟悉图的各种存储结构及其构造算法,了解实际问题的求解效率与采用何种存储
结构以算法有着密切的联系。 二、实验内容
计算机专业的学生要学习一系列课程,其中有些课程必须在其先修课程完成后才能学习,具体关系见下表: 课程编号 课程名称 先决条件 C1 程序设计基础 无 C2 离散数学 C1 C3 数据结构 C1,C2 C4 汇编语言 C1 C5 语言的设计和分析 C3,C4 C6 计算机原理 C11 C7 编译原理 C3,C5 C8 操作系统 C3,C6 C9 高等数学 无 C10 线性代数 C9 C11 普通物理 C9 C12 数值分析 C1,C9,C10 假设每门课程的学习时间为一学期,试为该专业的学生设计教学计划,使他们能在最短的时间内修完这些课程。
三、基本要求
以顶点代表课程,弧代表课程的先后修关系,建立有向无环图,利用拓扑排序算法来进行课程安排。采用邻接链表存储结构。 四、参考程序
4
实验六 查找
一、实验目的
1.掌握查找的不同方法,并能用高级语言实现查找算法。
2.熟练掌握顺序表和有序表的查找方法以及静态查找树的构造方法和查找算法,理
解静态查找树的折半查找的方法。 二、实验内容
单链表的顺序查找、有序表的折半查找(用递归实现)、有序表的折半查找(用非递归实现)。 三、基本要求
本程序的目的是对三种不同的查找方法进行比较。待查找的元素的关键字为整数,用户可由键盘输入表中元素和待查找的元素,要求输入的数据以“0”标志结束。
5
实验七 排序
一、实验目的
1.掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。 2.深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用。
3.了解各种方法的排序过程及其依据的原则,并掌握各种排序方法的时间复杂度的分析方法。 二、实验内容
给出n个学生的考试成绩表,每条信息由姓名与分数组成,试设计一个算法:
(1)按分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同一名
次;
(2)按名次列出每个学生的姓名与分数。 三、基本要求
学生的考试成绩表必须通过键盘输入数据而建立,同时要对输出进行格式控制。可采用直接选择排序、直接插入、Shell排序、冒泡排序、快速排序、归并排序等排序算法实现。 四、参考程序
6

