算法与数据结构-上机实验大纲.pdfVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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)

183****2120 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档