数据结构C语言版-稀疏矩阵三元组的基本操作

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构

课程设计实验报告

内容名称:稀疏矩阵的基本操作成员1:09213020-陈东

成员2:09213040-蔡丹

班级:09数31

教师:***

江苏师范大学

数学科学学院

目录

1.序言 (3)

1.1数据结构背景 (3)

1.2课程设计目的 (3)

1.3 课程名称 (3)

1.4设计要求 (3)

1.5设计说明 (3)

2.课程任务设计说明书 (5)

3.需求分析 (6)

3.1题目名称 (6)

3.2题目内容 (6)

3.3题目分析 (6)

4.概要设计 (7)

4.1稀疏矩阵存储结构 (7)

4.2.稀疏矩阵的基本操作 (7)

4.3各模块设计要求 (8)

4.4总体功能流程图 (9)

4.4.1存储结构流程图 (9)

4.4.2稀疏矩阵基本操作流程图 (10)

5.详细设计 (11)

5.1设计原理 (11)

5.2基本函数实现流程图 (13)

6.主要函数代码 (21)

7.调试与操作说明 (27)

7.1操作说明 (27)

7.2调试结果………………………………………………………………………………. ..28

7.3结果分析 (31)

8.设计体会 (32)

9.参考文献 (32)

10.分工说明 (33)

1.序言

1.1数据结构背景

数据结构是一门理论性强、思维抽象、难度较大的课程,是基础课和专业课之间的桥梁。该课程的先行课程是计算机基础、程序设计语言、离散数学等,后续课程有操作系统、编译原理、数据库原理、软件工程等。通过本门课程的学习,我们应该能透彻地理解各种数据对象的特点,学会数据的组织方法和实现方法,并进一步培养良好的程序设计能力和解决实际问题的能力,而且该课程的研究方法对我们学生在校和离校后的学习和工作,也有着重要的意义。

数据结构是计算机科学与技术专业的一门核心专业基础课程,在该专业的课程体系中起着承上启下的作用,学好数据结构对于提高理论认知水平和实践能力有着极为重要的作用。学习数据结构的最终目的是为了获得求解问题的能力。对于现实世界中的问题,应该能从中抽象出一个适当的数学模型,该数学模型在计算机内部用相应的数据结构来表示,然后设计一个解此数学模型的算法,再进行编程调试,最后获得问题的解答。

基于此原因,我们开设了数据结构课程设计。针对数据结构课程的特点,着眼于培养我们的实践能力。实习课程是为了加强编程能力的培养,鼓励学生使用新兴的编程语言。相信通过数据结构课程实践,无论是理论知识,还是实践动手能力,同学们都会有不同程度上的提高。

1.2课程设计的目的

巩固和深刻理解“数据结构(C语言版)”课程所讲解的C语言作为数据结构的算法的描述,掌握对数据的存储结构和算法进行描述时,尽量考虑C 语言的特色。培养学生独立工作和创新思维的能力,取得设计与调试的实践经验。提高和加强计算机应用及软件开发能力。通过课程设计题目的练习,强化学生对所学知识的掌握及对问题分析和任务定义的理解,对每到题目作出了相应的逻辑分析和数据结构的选择,通过对任务的分析,为操作对象定义相应的数据结构,以过程化程序设计的思想方法为原则划分各个模块,定

义数据的抽象数据类型。分模块对题目进行设计,强化学生对C语言的掌握和对数据结构的选择及掌握。通过程序的编译掌握对程序的调试方法及思想,并且让学生学会使用一些编程技巧。促使学生养成良好的编程习惯,以及让学生对书本上的知识进行了实践。算法与数据结构这门课是计算机科学中一门综合性的专业基础课

1.2课程名称:数据结构

1.3设计要求

学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构,存储结构及其相应的算法,算法要求用C语言完成。学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,撰写课程设计报告。要求源代码有足够的注释,能达到题目要求,并使人能看得懂你的代码。

1.5设计说明

此课程设计着重在于让我们理解如何利用C语言来实现稀疏矩阵的一些具体操作,里面代码完全采用C语言描述,包括了稀疏矩阵的建立,稀疏矩阵的输出,两个稀疏矩阵的相加,以及如何求出相应矩阵的转置矩阵。由于在我们课本中除了学习了稀疏矩阵的建立,相加,转置外,我们还接触了稀疏矩阵的销毁,稀疏矩阵的复制,稀疏矩阵的相减,稀疏矩阵的相乘,为了将有关稀疏矩阵的几个基本操作全部实现一遍,我们在完成原有题目的要求下,拓展了下题目内容,将稀疏矩阵的销毁,稀疏矩阵的复制,稀疏矩阵的相减,稀疏矩阵的相乘补充进去,这样我们更觉得此次课程设计的完整性。而且,为了使读者更容易理解代码含义,程序的源代码基本与书本同步,思想方法也基本与书本介绍的吻合!

2.课程设计任务书

3.需求分析

3.1题目名称:稀疏矩阵的操作

3.2题目内容:

1.稀疏矩阵采用三元组表示;

2.求两个具有相同行列数的稀疏矩阵A和B的相加矩阵C,并输出C;

3.求出A的转置矩阵D,输出D;

题目拓展:

4.稀疏矩阵的销毁

5.稀疏矩阵的快速转置

6.求两个具有相同行列数的稀疏矩阵A和B的相减矩阵C,并输出C;

7.求两个具有相同行列数的稀疏矩阵A和B的相乘矩阵C,并输出C;

3.3题目分析:

通常,用高级语言编制程序时,都是用二维数组来存储矩阵元。有的程序设计语言中还提供了各种矩阵运算,用户使用时都很方便。

然而,在数值分析中经常出现一些阶数很高的矩阵,同时在矩阵中有许多值相同的元素或者零元素。有的为了节省存储空间,可以对这类矩阵进行压缩存储。所谓压缩存储是指:为多个值相同的元只分配一个存储空间;对零元不分配空间。我们可以运用压缩存储的方式来实现稀疏矩阵的几个基本操作。

相关文档
最新文档