数据结构报告一元多项式.doc

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

数据结构 课程设计报告 主题:实现一元多项式抽象数据类型 学号:20091003768 班级:计科四班 姓名:熊金莲 指导老师:郭艳 内容概要 题目要求 实现该一元多项式抽象数据类型的要点 函数模块及各函数可实现的功能简介 具体的源代码 使用说明 实验心得 一:题目要求如下: 构造一个空的多项式 多项式插入新的一项 多项式合并同类项 多项式加法 多项式乘法 打印多项式 计算多项式的值 二:构思要点 以链表形式创建两个多项式a与b,a与b的加法与乘法用到链式结构的操作。因为系数coef设置为浮点类型,指数expn设置为整形,所以构思是输入多项式的系数和指数时,以0 0为输入结束标志,并设置这一判断语句。在插入函数中,寻找多项式适当的插入位置,可以实现多项式的升序排列,同时也在该插入函数中实现多项式合并同类项的功能。为???现多项式相加相乘定义了相加函数及相乘函数,实现a与b的相加相乘时直接调用。还有就是定义输出函数,打印各多项式。再者计算多项式的值时,先输入x的值,带入多项式计算即可。在主函数中使用switch语句,在此为了让本一元多项式功能步步展示,省去了各个case后的break语句。 三:各函数模块 /*第一,二部分 构造一个空的多项式并用链表插入法创建多项式*/ void Insertlinklist(linklist p,linklist q) /*第一部分 链表插入*/ { if(p-coef==0)free(p); //系数为0则该项为空 释放结点空间 else { linklist q1,q2; q1=q;q2=q-next; while(q2p-expnq2-expn){q1=q2;q2=q2-next;} //寻找将插入的位置 if(q2p-expn==q2-expn) { q2-coef+=p-coef;free(p); if(q2-coef==0){q1-next=q2-next;free(q2);} //系数为0则该项为空 释放结点空间 } else {p-next=q2;q1-next=p;} //指数异于其他项指数时将结点插入 } } linklist Createlinklist(linklist head) /*第二部分 创建链表*/ { linklist p;int n;float m; p=head=(linklist)malloc(sizeof(struct lnode)); p-next=NULL; scanf(%f%d,m,n); while(m!=0||n!=0) //当输入为0 0时结束输入 { p=(linklist)malloc(sizeof(struct lnode)); p-coef=m;p-expn=n; Insertlinklist(p,head); /*调用第一部分函数*/ scanf(%f%d,m,n); } return head; } 2)/*第二部分 销毁链表*/ void Destroylinklist(linklist p) { linklist q1=p-next,q2=q1-next; while(q2){free(q1);q1=q2;q2=q2-next;} } 3)/*第三部分 打印链表*/ void Printlinklist(linklist p) { linklist q=p-next; int c=1; if(!q){putchar(0);printf(\n);return;} while(q) { if(q-coef0c!=1)putchar(+); if(q-coef!=1q-coef!=-1) { printf(%f,q-coef); if(q-expn==1)putchar(x); else if(q-expn)printf(x^%d,q-expn); } else { if(q-coef==1) { if(!q-expn)putchar(1); else if(q-expn==1)putchar(x); else printf(x^%d,q-expn); } else if(q-coef==-

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档