- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验大纲概要
《数据结构》实验教学大纲
课程编号:
课程名称: 数据结构/ Data Structure
16学时
适应专业: 计算机科学与技术、软件工程
承担实验室:计算机科学与技术学院实验中心
一.实验教学的目的和任务
上机实习是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,实习题中的问题比平时的练习题要复杂,也更接近实际。数据结构这门课程安排的4次上机实验都属于一种设计类型的实验,每个实验的训练重点在于基本的数据结构,而不强调面面俱到;实验的目的是旨在使学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容;培养学生编制算法的能力和编程解决实际问题的动手能力。
1)实验题目、班级、学号、姓名、完成日期;(2)简要的需求分析与概要设计;(3)详细的算法描述;(4)程序清单与运行结果;(5)收获与体会。
10-20%。
序号 实 验 项 目 名 称 实验
类型 开出要求 1 针对链式或顺序存储的线性表实现指定的操作 4 设计 必开 2 使用栈或队列解决一个应用问题 4 设计 必开 3 实现对二叉树的一个指定的操作或用二叉树解决一应用问题 4 设计 必开 4 实现对图的一个指定的操作或用图解决一个应用问题 4 设计 必开 说明:上述实验项目仅列出实验内容的范围,具体内容可根据教学情况而指定,可以一个实验项目下安排多个不同的实验题(参见本大纲的第三部分所述) 。
三、每项实验的内容和要求
要求每个实验保证每个学生一台微机
实验一:针对链式或顺序存储的线性表实现指定的操作
题1 问题描述:有两个指数递减的一元多项式,写一程序先求这两个多项式的和,再求它们的积。
题2 问题描述:编号为1,2,···,n的n个人围坐在一圆桌旁,每人持有一个正整数的密码。从第一个人开始报数,报到一个预先约定的正整数m时,停止报数,报m的人退席,下一个人又重新从1开始报数,依此重复,直至所有的人都退席。编一程序输出他们退席的编号序列。例如,设m=20,n=7,7个人的密码依次是3,1,7,2,4,8,4,则退席的人的编号依次为6,1,4,7,2,3,5。
n个人;要求建立此循环单链表;某人离席相当于删除一个结点,要正确设置程序中循环终止的条件和删除结点时指针的修改变化。
实验二:使用栈或队列解决一个应用问题
问题描述 设计一个模拟计算器功能的程序,它读入一个表达式,如果是一个正确的表达式(即它由操作数、圆括号和+、-、*、/四种运算符组成),则求出该表达式的值;否则给出某种错误信息。
基本要求:读入一个以字符序列形式给出的以等号(=)结尾的表达式;程序中应考虑运算符的优先级、运算的合法性。
实验三:实现对二叉树的一个指定的操作或用二叉树解决一应用问题
问题描述:对任意输入的一段英文,为每个字符编制其相应的赫夫曼编码;并利用该编码为任意输入的0、1序列进行解码.
基本要求:一个完整的系统应具有以下功能:
(1)初始化 从终端读入一段英文字符,统计每个字符出现的频率,建立赫夫曼树,并将该树存入某文件;
(2)编码 利用建好的赫夫曼树对各字符进行编码,用列表的形式显示在屏幕上,并将编码结果存入另一文件中;
(3)解码 利用保存的赫夫曼编码,对任意输入的0,1序列能正确解码;
实验四:实现对图的一个指定的操作或用图解决一个应用问题
问题描述:n个村庄之间的无向图,边上的权值w(i,j)表示村庄i和j之间道路长度.现要从这n个村庄中选择一个村庄新建一所医院,使离医院最远的村庄到医院的路程最短.设计一程序求解此问题.
用邻接矩阵表示无向网,应显示所选中的村庄到各村庄的最短距离。
#includeiostream
using namespace std;
#define INFINITY 10000//即是邻接矩阵中的无穷大值
#define MAX_VERTEX_NUM 20
typedef struct ArcCell
{
int adj;//保存权值
}ArcCell, AdjMarix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedef struct
{
char vexs[MAX_VERTEX_NUM];
AdjMarix arcs;
int vexnum, arcnum;
}MGraph;
int LocateVex(MGraph G, char v1){
f
文档评论(0)