- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计-数组和链表在矩阵多项式减运算中的应用
数组和链表在矩阵多项式减运算中的
应用
学生姓名: 指导老师:
摘 要 本次课程设计主要根据课本中介绍的的实现思想及算法编写一个程序,主要实现矩阵多项式的减法运算。以数组、指针、线性链表等相关知识为基础,掌握并熟练运用数组及线性链表。在程序设计中,采用线性链表的形式实现多项式的存储,输入一个多项式中项的系数和指数,就产生一个新的节点,建立起它的右指针,并用头结点指向它,如此建立两个多项式的链表,实现减法运算。另用数组表示一个矩阵,用矩阵代替多项式中的未知量计算两个多项式的相减结果,并进行输出显示结果。这次课程设计的设计内容主要是通过实际的例子和程序来实现课本中所学习的算法的应用。程序设计设计语言采用C++,程序运行平台为Windows XP。
关键字 数组;线性链表;多项式
目 录
1 引言 3
1.1 目的与意义 3
1.2课程设计内容 3
2 开发工具简介 5
3 设计与实现 7
3.1函数及说明 7
3.2数据结构设计 7
3.3流程图设计 9
4 测试 11
4.1运行环境 11
4.2多项式运算介绍 11
4.3运行结果 12
5 结束语 13
致谢 14
参考文献 15
附录 源程序代码 16
1引 言
利用计算机进行数据处理是计算机应用的一重要领域。在进行数据处理时,实际需要处理的数据元素一般很多,而这些大量的数据元素都需要存放在计算机中,因此,大量的数据元素按什么结构存放在计算机中,以便提高数据处理的效率,并节省计算机的存储空间,这是进行数据处理的关键问题[1]。数据结构就是本课程设计主要实现矩阵多项式的减法,通过C++语言实现多项式的建立和输出,以及两个多项式相减后的结果输出,其中多项式中的未知量用一个给定矩阵表示。
设计中主要涉及到线性表的链式存储结构,用线性链表进行数据存储时,每个数据元素用一个结点(node)来存储,一个结点有两个成分域:一个是存放数据元素的data,称为数据域;另一个是存储指向此链表下一个结点的指针next,称为指针域[]。这里主要是运用线性链表实现多项式的存储。为插入一个新的数据元素,应生成一个新的结点,在需要插入的位置将指针域的指针指向新结点的数据域,将新结点的指针域指向下一结点的数据域。两个多项式,结果按升幂或降幂排列,将要涉及到链表的插入算法。计的目的与意义,概述了本次课程设计的主要内容。第二章主要是针对开发工具Visual C++6.0Visual C++6.0 是Microsoft公司在1998年推出的基于Windows 9X和Windows NT的优秀集成开发环境。该环境为用户提供了良好的可视化编程环境,程序员可以里利用该开发环境轻松地访问C++源代码编辑器,资源编辑器和使用内部调试器,并且可以创建项目文件。Visual C++6.0不仅包括编译器,而且它还包括许多有用组件,通过这些组件的协同工作,可以在Visual C++6.0集成环境中轻松地完成创建源文件,编辑资源,以及对程序的编译,连接和调试等各项工作。
VC++6.0是Windows 95/98、XPWindows 95/98、Windows NTVisual Studio( Visual C++、Visual Foxpro) 在VisualC++主窗口的主菜单栏中选择文件命令,然后选择新建命令,屏幕上出现一个新建对话框。单击此对话框的上方的文件,在其下拉菜单中选择“C++Source File”项,表示要建立新的C++源程序文件,然后在对话框有半部分的目录文件框中输入准备编辑的源程序文件的存储路径。在上方的文件文本框中输入准备编辑的源程序文件的名字。单击确定回到Visual C++主窗口,程序编辑窗口已激活Create()Display()Subtration()函数进行两个多项式的减法运算,然后再分别调用Create(Create() 创建一个线性链表,用于存储多项式
Display() 输出显示所创建的多项式
Subtration() 将两个多项式做减法运算
Mul() 完成矩阵的幂运算
3.2数据结构设计
在许多实际应用中,经常会遇到多项式的处理与运算问题。下面通过运用单链表对多项式的表示以及运算进行讨论。设多项式为 Pn(x)…+a1x+a0
在采用链表表示多项式时,对于多项式中每一个非零系数的项构成链表中的一个结点,而对于系数为零的项就不用表示。多项式中非零系数项所构成的结点如图3.1所示。其中数据域有两项:exp(i)next(i)图.1 多项式非零系数项的结点结构在C++中void Mul()
{
int a[2][2]={{2,0},{0,2}}; //给定2*2矩阵
int c[2][2];
int i,j,k;
文档评论(0)