- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
《算法与数据结构》实验(上机)大纲
课程名称:算法与数据结构
上机学时:16学时
适用专业:软件工程
一、实验(上机)课程的性质、目的与任务:
《算法与数据结构》是软件工程专业的一门专业必修课,是理论
与实践并重的课程。实验是该课程实践教学环节的重要环节,它的内
容覆盖了算法与数据结构的各个主要部分。通过实验可以加深对数据
结构基本概念、基本理论的理解,使学生巩固和运用所学知识以解决
实际的具体问题,同时提高程序设计和实际操作的能力,在程序设计
方法以及上机操作等基本技能和科学作风方面受到比较系统和严格
的训练。原则上要求学生针对实际问题进行数据结构设计、算法设计、
编程调试、算法测试和优化,获得运行结果,并作为课程考核内容的
一部分,也为后续课程的学习打下良好的基础。
二、实验(上机)报告内容
⒈问题描述:包括需求分析、实现目标、任务、条件和约束的描
述。充分地分析和理解问题本身,弄清要求做什么,包括功能要求、
性能要求、设计要求和约束以及基本数据特性,数据间的联系等。
⒉设计:包括概要设计和详细设计
在概要设计中,第一步先进行数据结构设计:针对要求解决的问
题,考虑各种可能的数据结构,还可以根据算法的时间复杂度和空间
复杂度一起考虑,以确定最合适的数据结构,主要描述逻辑结构。
第二步进行关键算法设计:对每个算法的功能及初始条件和操作
结果认真分析确定,并针对模块化开发的特点,自顶向下分解成若干
顺序模块,确定模块间的相互关系以及模块之间的信息交换问题。
第三步设计主控模块及功能模块层次间的结构;
在详细设计中,第一步对数据结构的存储结构进行描述,对数据
结构的逻辑结构和物理结构进行定义,掌握其特点和映射关系。
第二步对每个算法进行实现,包括输入、处理和输出的描述。
程序代码尽可能的多加注释,用C语言实现。
3.测试:准备典型测试数据和测试方案,对测试结果进行分析与
讨论,对测试过程中遇到的主要问题及所采用的解决措施进行总结,
以优化算法。
⒋使用说明和作业小结(如果有):
⑴使用说明主要描述如何使用你的程序以及使用时的主要事项;
⑵在小结中说明实验过程中碰到的问题,算法的改进思想、经验
和体会。
⒌提交一份程序清单及运行示例的结果(电子版)。
三.实验(上机)内容、要求及学时分配:
1、线性表的存储结构定义及基本操作(2学时)
2、线性表的综合应用(2学时)
3、栈和队列的综合应用(2学时)
4、二叉树的定义及基本操作(2学时)
5、图及其应用(2学时)
6、最短路径和关键路径的研究与实现(2学时)
7、查找和排序算法的实现(2学时)
8、赫夫曼编码及其应用(2学时)
四.实验(上机)的具体要求和指导:
实验一:线性表的存储结构定义及基本操作(基本2学时,扩展4学
时)
实验目的:
掌握线性表的逻辑特征
掌握线性表顺序存储结构的特点,熟练掌握顺序表的基本运算
熟练掌握线性表的链式存储结构定义及基本操作
理解循环链表和双链表的特点和基本运算
加深对栈结构的理解,培养解决实际问题的编程能力。
加深对顺序存储数据结构的理解和链式存储数据结构的理解,逐
步培养解决实际问题的编程能力
实验内容:
(1)基本实验内容:
建立顺序表,完成顺序表的基本操作:初始化、插入、删除、逆
转、输出、销毁,置空表、求表长、查找元素、判线性表是否为空;
建立单链表,完成链表(带表头结点)的基本操作:建立链表、
插入、删除、查找、输出;其它基本操作还有销毁链表、将链表置为
空表、求链表的长度、获取某位置结点的内容、搜索结点。
(2)扩展实验内容:
查前驱元素、查后继元素、顺序表合并,两个有序单链表的合并
操作等。
实验二:线性表的综合应用(2学时)
实验目的:
掌握顺序表和链表的概念,学会对问题进行分析,选择恰当的逻
辑结构和物理结构
加深对顺序表和链表的理解,培养解决实际问题的编程能力
实验内容:
实现一元稀疏多项式的表示及基本操作(建立、销毁、输出、加
法、减法、乘法等操作);
实验三:栈和队列的综合应用(2学时)
实验目的:
熟悉栈的定义和栈的基本操作
熟悉队列的定义和栈的基本操作
掌握递归和非递归算法的实现技术和实际应用
加深对栈结构的理解,培养解决实际问题的
文档评论(0)