一元多项式相加的实验报告.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一元多项式相加的实验报告

《数据结构》实验报告1、实验名称:实现一元多项式的加法2、实验日期: 2011-3-73、基本要求:1)编程实现一元多项式的加法; 2)设计一个测试主函数。4、实验目的:通过实验使学生掌握链表的最基本和最主要的操作:插入和删除操作。5、测试数据:随意输入两个一元多项式的系数和指数: 第一个:系数:4 8 6 7;指数:2 3 4 5 第二个:系数:5 9 3 8;指数:1 3 5 6 两式相加后输出结果。6、算法思想或算法步骤:用尾插入法创建单链表(PLoy *create_Ploy_LinkList(void))2)输出单链表中所有结点的值,得到一元多项式(void output_Ploy_LinkList(PLoy *L, char ch))3)进行多项式的相加,采用链式存储表示加法,根据结点类型定义,若指数不同,则进行链表的合并;若指数相同,则进行系数相加;若和为0,则去掉结点;若和不为0,则修改结点的系数域。(PLoy *add_ploy(PLoy *La, PLoy *Lb))7、模块划分: 1)头文件stdiob.h。头文件stdiob.h中包括:结点结构体定义、一元多项式的系数和指数的输入、一元多项式的输出以及两式相加输出结果的操作等; 2)实现文件yydxsxj.cpp。包含主函数int main(),其功能是测试所设计的一元多项式加法的正确性。8、数据结构:链表中的结点的结构体定义如下:typedef struct Node{float coef; /*系数部分*/int expn; /*指数部分*/struct Node *next ;} PloyNode;9、源程序:源程序存放在两个文件中,即头文件stdiob.h和实现文件yydxsxj.cpp。//头文件stdiob.htypedef struct Node{float coef; /*系数部分*/int expn; /*指数部分*/struct Node *next ;} PloyNode;PloyNode *create_Ploy_LinkList(void){ /* 尾插入法创建单链表,链表的头结点head作为返回值 */ float coef ; int expn ; PloyNode *head, *p, *q; head=p=(PloyNode *)malloc(sizeof(PloyNode)); p-next=NULL; /* 创建单链表的表头结点head */ while (1) { printf(\n请输入一元多项式的系数(0表示结束): ) ;scanf(%f,coef);if (coef==0) break ;else { printf(\n请输入一元多项式的指数: ) ;scanf(%d,expn);q=(PloyNode *)malloc(sizeof(PloyNode));q-coef=coef ; /* 指数部分赋值 */q-expn=expn ; /* 系数部分赋值 */q-next=p-next; p-next=q; p=q ; /* 钩链,新创建的结点总是作为最后一个结点 */ } } return(head); }void output_Ploy_LinkList(PloyNode *L, char ch) /* 输出以L为头结点的单链表中所有结点的值 */ { PloyNode *p;p=L-next; /* 使p指向第一个结点 */if (p==NULL) printf(\n此多项式为空!!\n\n) ;else{ printf(f(x)= \n,ch) ;while (p!=NULL){ if (p-coef0) printf(%+g,p-coef) ;else printf(%g,p-coef) ;if (p-expn!=0) { printf(X^) ;printf(%d,p-expn);}p=p-next; } } /* 移动指针p */ printf(\n\n) ;}PloyNode *add_Ploy(PloyNode *La, PloyNode *Lb){PloyNode *Lc , *pc , *pa , *pb ,*ptr ; float x ;Lc=pc=La ; pa=La-next ; pb=Lb-next ;if(pa==NULLpb==NULL)printf(两个式子之和也为空项);whi

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档