数据结构课程设计_n元多项式乘法

数据结构课程设计_n元多项式乘法

ID:47332789

大小:600.91 KB

页数:18页

时间:2019-08-15

数据结构课程设计_n元多项式乘法_第1页
数据结构课程设计_n元多项式乘法_第2页
数据结构课程设计_n元多项式乘法_第3页
数据结构课程设计_n元多项式乘法_第4页
数据结构课程设计_n元多项式乘法_第5页
资源描述:

《数据结构课程设计_n元多项式乘法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.数据结构课程设计报告——N元多项式乘法...目录1课程设计内容-1-2课程设计分析-1-3思路原理-3-4程序简图-4-5算法(数据结构)描述-4-6程序清单-6-6.1单链表表示-6-6.2数组表示-13-7运行与调试分析-15-8收获与体会-16-9参考文献-16-...1课程设计内容功能:完成两个n元多项式作乘法,给出明确的等式形式。分步实施:1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2)完成最低要求:建立一个文件,实现两个一元二次多项式作乘法。3)进一步要求:实现三元二次多项式的乘法。有兴趣的同学可以自己扩充系统功

2、能。2课程设计分析本程序用的存储方式是单链表,单链表在C语言中是一种非常常见的结构,而在C++中的实现却又有不同,在一些地方更简单,更严密。同时,由于C++的一些特点,使它具有C语言所不具有的“安全化”,所以本程序用C++。有了链表特定的数据类型Mulpoly,接下来就需要建立这个链表。这里定义了一个构造函数CreatePoly来构造链表。首先定义一个CreatePoly型的指针变量head作为头结点,存储多项式的信息(项数),为head分配存储空间建立一个头结点并为其数据域赋值,分配存储空间用c++语言中的malloc来实现;这时输入多项式的项数

3、num,把它赋值给head的coef域,exp域赋值为1,此时再定义一个CreatePoly型的指针变量r指向head头结点。还要用类似的算法建立多项式的其它结点,剩余节点的插入用一个while循环来实现,while循环中的控制变量i从大于0的数n开始递增,直到到达num,此时while循环结束。While循环的循环体由两部分组成,第一部分是为指针变量s分配存储空间和为其数据域赋值,分配存储空间同样用c++语言中的malloc来实现;第二部分是节点的指针域转换过程,将r的指针域指向新生成的结点s,相当于将生成结点依次用指针连接,然后将最后一个结点的

4、指针域设置为NULL,具体代码如下:MulPoly*CreatePoly(){MulPoly*head,*r,*s;intm,n,num,i=1;head=(MulPoly*)malloc(sizeof(MulPoly));cout<<"请输入多项式的项数:"<>num;head->coef=num;head->exp=1;r=head;while(i<=num)//n不为0时建立多项式链表{s=(MulPoly*)malloc(sizeof(MulPoly));...cout<<"输入第"<

5、l;cin>>n>>m;s->exp=m;s->coef=n;r->next=s;r=s;i++;}r->next=null;return(head);}在处理多项式相乘的问题时,定义一个PolyMulti函数实现,需要再建立一个MulPoly型的链表存储相乘之后的链表,定义结果链表的系数等于链表P1的系数乘以链表P2的系数:(p->coef)=(p1->coef)*(p2->coef)结果链表的指数等于链表P1的指数乘以链表P2的指数:(p->exp)=(p1->exp)+(p2->exp)。在整理之后可能出现零结点,那么就需要进行判断和删除操作

6、同时释放零结点,这些操作是通过一个while循环来完成。具体代码如下:while(p!=q){s=q;q=q->next;}s->next=q->next;free(q);}还需要定义一个输出函数,在主函数中调用输出两个多项式相乘后的结果。程序的最终都是由主函数来实现。在主函数中通过对一些自定义函数的调用实现具体的操作。在此主函数调用了一个构建链表的函数CreatePoly、一个删除空结点的函数Delete和输出函数Print。在主函数的开始需要定义三个MulPoly型指针变量,分别用来存储调用CreatePoly函数和PolyMulti函数生成的

7、链表和结果链表。在构建链表之前要给节点分配存储空间,s=(MulPoly*)malloc(sizeof(MulPoly));这条语句便可完成此操作。此条语句运用了c++语言库函数中的malloc函数,这个函数的作用是在内存的动态存储区中分配一个长度为sizeof(MulPoly)的内存空间。调用构建链表函数CreatePoly后链表Pl便构建完成。接下来需要执行m=PolyMulti(p,q);语句,这条语句的目的是把多项式P1和P2相乘的结果多项式存储在链表m当中,然后执行Print(m);语句显示输出。主函数的程序框架如下:intmain(){

8、MulPoly*p,*q,*m;p=CreatePoly();q=CreatePoly();m=PolyMulti(p,q

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。