教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

数据结构实验指导书1

来源:网络收集 时间:2026-09-08
导读: 北 京 林 业 大 学 实 验 任 务 书 备注:实验共分4次,其中实验1――实验3为设计性实验,实验4为综合性实验,具 体安排下面一一列出。 北 京 林 业 大 学 09学年—10学年第 2学期 数据结构实验任务书 专业名称: 实验学时: 4 课程名称:数据结构 任课教师

北 京 林 业 大 学

实 验 任 务 书

备注:实验共分4次,其中实验1――实验3为设计性实验,实验4为综合性实验,具

体安排下面一一列出。

北 京 林 业 大 学 09学年—10学年第 2学期 数据结构实验任务书

专业名称: 实验学时: 4

课程名称:数据结构 任课教师: 李冬梅

实验题目:线性表的基本操作

实验环境: Visual C++

实验目的:

1、掌握线性表的定义;

2、掌握线性表的基本操作,如建立、查找、插入和删除等。

实验内容:

定义一个包含学生信息(学号,姓名,成绩)的的顺序表和链表,使其具有如下功能:

(1) 根据指定学生个数,逐个输入学生信息;

(2) 逐个显示学生表中所有学生的相关信息;

(3) 根据姓名进行查找,返回此学生的学号和成绩;

(4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩);

(5) 给定一个学生信息,插入到表中指定的位置;

(6) 删除指定位置的学生记录;

(7) 统计表中学生个数。

实验提示:

学生信息的定义:

typedef struct {

char no[8]; //8位学号

char name[20]; //姓名

int price; //成绩

}Student;

顺序表的定义

typedef struct {

Student *elem; //指向数据元素的基地址

int length; //线性表的当前长度 }SqList;

链表的定义:

typedef struct LNode{

Student data; //数据域

struct LNode *next; //指针域

}LNode,*LinkList;

实验要求:

(1) 程序要添加适当的注释,程序的书写要采用缩进格式。

(2) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插

入删除时指定的位置不对等等。

(3) 程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。

(4) 根据实验报告模板详细书写实验报告,在实验报告中给出链表根据姓名进行查找的

算法和插入算法的流程图。

(5) 上传源程序和实验报告到ftp的相应班级所在文件夹。顺序表的源程序保存为

SqList.cpp,链表的源程序保存为LinkList.cpp,实验报告命名为:实验报告1.doc。源程序和实验报告压缩为一个文件(如果定义了头文件则一起压缩),按以下方式命名:学号姓名.rar,如070814101薛力.rar。

北 京 林 业 大 学 09学年—10学年第 2 学期 数据结构实验任务书

专业名称: 实验学时: 4

课程名称:数据结构 任课教师: 李冬梅

实验题目:二叉树的基本操作

实验环境: Visual C++

实验目的:

1.掌握二叉树的定义;

2.掌握二叉树的基本操作,如二叉树的建立、遍历、结点个数统计、树的深度计算等。

实验内容:

用递归的方法实现以下算法:

1.以二叉链表表示二叉树,建立一棵二叉树(算法5.3);

2.输出二叉树的中序遍历结果(算法5.1);

3.输出二叉树的前序遍历结果(见讲稿);

4.输出二叉树的后序遍历结果(见讲稿);

5.计算二叉树的深度(算法5.5);

6.统计二叉树的结点个数(算法5.6);

7.统计二叉树的叶结点个数;

8.统计二叉树的度为1的结点个数;

9.输出二叉树中从每个叶子结点到根结点的路径。

选做内容

1.交换二叉树每个结点的左孩子和右孩子;

2.设计二叉树的双序遍历(DblOrderTraverse)算法(双序遍历是指对于二叉树的每一

个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)。

实验提示:

7.统计二叉树的叶结点个数

int LeafNodeCount(BiTree T ){

如果是空树,则叶子个数为0;

如果是叶子结点,则叶子结点个数为1(如何表示叶子结点???)

否则叶结点个数为左子树的叶结点个数+右子树的叶结点个数

}

实验要求:

(1) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应。

(2) 程序要添加适当的注释,程序的书写要采用缩进格式。

(3) 根据实验报告模板详细书写实验报告,上交一份实验报告打印稿。

(4) 源程序保存为“sy2.cpp”,实验报告命名为“实验报告2.doc”。将这两个文件压

缩为一个文件,按以下方式命名:学号姓名.rar,上传到ftp的相应班级所在文件夹。

北 京 林 业 大 学 09学年—10学年第 2 学期 数据结构实验任务书

专业名称: 实验学时: 4

课程名称:数据结构 任课教师: 李冬梅

实验题目:图的最短路径算法的实现 实验环境: Visual C++

实验目的:

1.掌握图的邻接矩阵的存储定义;

2.掌握图的最短路径(Dijsktra)算法的实现。 。

实验内容:

设计北京林业大学的校园平面图,所含景点不少于8个。以图中顶点表示学校内各景点,存放景点的名称、景点介绍信息等;以边表示路径,存放路径长度信息。要求将这些信息保存在文件graph.txt中,系统执行时所处理的数据要对此文件分别进行读写操作。

1.从文件graph.txt中读取相应数据, 创建一个图,使用邻接矩阵表示图(算法6.1);

2.景点信息查询:为来访客人提供校园任意景点相关信息的介绍;

3.问路查询:为来访客人提供校园任意两个景点之间的一条最短路径(算法6.10)。

选做内容(对文件进行操作,相应信息变化后,再次进行景点信息查询和问路查询时应

该有所体现)

1. 修改一个已有景点的相关信息;

2. 增加一个新景点及其相关信息;

3. 增加一条新的路径;

4. 删除一个景点及其相关信息;

5. 删除一条路径。

实现提示:

1. 校园道路是双向通行的,可设校园平面图是一个带权的无向图,用邻接矩阵表示此无

向网。

typedef struct{

char name[100];

char info[10000];

}VertexType; //顶点结构

typedef struct{

VertexType vexs[10];

int arcs[100][100];//邻接矩阵

int vexnum,arcnum;//顶点个数,边的个数

}MGraph; //图结构

2. 将图的顶点信息和边的信息用数据文件graph.txt存储,数据文件格式可以设置如下形

式:

图中顶点数 边的数目

景点名称 景点信息

始点 终点 路径长度

如可以在文件graph.txt中存储以下数据:

8 15

女生宿舍 有南北两栋,24层,是北林最漂亮的宿舍楼

小南门 经由北林主路通往学校北门,交通便利

正门 主楼 80

正门 图书馆 400

程序运行的参考结果下图:

实验要求:

(1) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应。

(2) 程序要添加适当的注释,程序的书写要采用 …… 此处隐藏:2257字,全部文档内容请下载后查看。喜欢就下载吧 ……

数据结构实验指导书1.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1570504.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)