数据结构课程设计报告一元多项式加减乘计算_第1页
数据结构课程设计报告一元多项式加减乘计算_第2页
数据结构课程设计报告一元多项式加减乘计算_第3页
数据结构课程设计报告一元多项式加减乘计算_第4页
数据结构课程设计报告一元多项式加减乘计算_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/

1、 问题描述能够按照指数降序排列建立多项式; 能够完成两个多项式的相加、相减和相乘,并将结果输出。2、 设计思路这个程序的关键是多项式的创建和排列,以及相乘时系数相乘和next

指针。数据插入时比较两数的指数,按照降序排序,从表头的next

开始,直至找到合适的位置,然后开始链表中数值的插入,如面,否则将新数据插入到最后。输入完数据后选择计算方式(相乘、3、 数据结构设计在模拟多项式对象时,为了简化处理,只取最核心的两个数据:多项式的系数和指数。前面提到,要用单链表操作,所以要加上个next

指针,再由该结构体定义一个结点类型和指针类型。具体数据结构定义如下:typedef

struct

node{

/

int

xs; /*系数*/int

zs; /*指数*/struct

node

*

next; /*next

指针*/}Dnode,*

Dnodelist;4、 功能函数设计(1)链表初始化函数Creat_node()(2)多项式数据的创建函数Creat_Dmeth()当链表初始化成功后,开始创建多项式。分别循环输入两个多项式的系数和指数,其中要用到插入函数。(3)数据的插入函数Insert_node()当创建多项式时,要用到此函数,即利用插入的方式将多项式的数据连接起来。再输入一组数据后,程序自动调用此函数,插入时也进行着排序,从表头的

next

开始,一一比较指数大小,直到大于或前指向的前面,否则将新数据插入到最后。(4)多项式的显示函数Show()从多项式表头的

next

一一显示。(5)选择运算方式的函数select()

为相减;每一种选择调用相应

/

的运算函数。(6)多项式的运算函数:新建链表存储计算后的多项式1、多项式相乘

Mulresult()创建两个指针分别指向两个多项式表头的

next,使用两个

while表中。2、多项式相加

Addresult()创建两个指针分别指向两个多项式表头的

next,分别使用两个while

函数独自循环,遍历各自的每一组数据,每遍历一次都将系数据依次插入到新的多项式中即可完成多项式相加。3、多项式相减

Subresult()创建两个指针分别指向两个多项式表头的

1

的指数小于多项式将当前多项式

2

项式

2

的指针指向下一个;如果如果当前多项式

1

的指数大于多项式

2,则将当前多项式1

的系数指数不变,存入新建多项式中,指向多项式

1

的指针指向下一个;否则将多项式

1

的系数减去

2

的系数

/

的数据全部插入到新建多项式中。(7)主函数

main()创建两个多项式的链表并且初始化,分别调用相应的多项式创建函数,创建成功后选择运算方式,再将运算结果输出显示。5、 程序代码

/*定义结构体*/

/*链表初始化*/

/*插入函数*/

/

/*创建多项式*/

/*以三组数据为例*/

/*多项式相乘*/

/

/*系数相乘,指数相加*/

/*多项式相加*/

/*多项式相减*/

/

/*由于是式

指数大(2

/

/*选择函数*/

printf("请选择:\n1:相乘\n2:相加\n3:相减\n");

/*调用相乘函数*/printf("相乘结果(系数,指数):\n");

/*调用相加函数*/printf("相加结果(系数,指数):\n");

/*调用相减函数*/printf("相减结果(系数,指数):\n");printf("无此选项\n");

/*显示(输出)函数*/

/

/*创建多项式

/*创建多项式

/*选择运算方式*/ /*输出显示*/6、 运行与测试程序运行时,先提示第一个多项式的组数,确定组数后才可输入

将进行相应的运算并输出显示。错误选择:

/

相乘:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论