实验报告——2一元稀疏多项式计算器

实验报告——2一元稀疏多项式计算器

ID:16075592

大小:153.00 KB

页数:12页

时间:2018-08-07

实验报告——2一元稀疏多项式计算器_第1页
实验报告——2一元稀疏多项式计算器_第2页
实验报告——2一元稀疏多项式计算器_第3页
实验报告——2一元稀疏多项式计算器_第4页
实验报告——2一元稀疏多项式计算器_第5页
资源描述:

《实验报告——2一元稀疏多项式计算器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、华北水利水电学院一元稀疏多项式计算器实验报告2010~2011学年第一学期09级计算机科学与技术专业班级:2009119学号:200911902姓名:万婷婷一、实验目的设计一个医院稀疏多项式简单计算器熟练掌握线性表的基本操作在两种存储结构上的实现,其中以各种链表的操作和应用二、实验要求a)输入并建立多项式b)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。序列按指数降序排列。c)多项式a和b相加,建立多项式a+b,输出相加的多项式。d)

2、多项式a和b相减,建立多项式a-b,输出相减的多项式。用带表头结点的单链表存储多项式。测试数据:(1)(2x+5x8-3.1x11)+(7-5x8+11x9)(2)(6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15)(3)(1+x+x2+x3+x4+x5)+(-x3-x4)(4)(x+x2+x3)+0(5)(x+x3)-(-x-x-3)(6)(x+x2+x3)+0三、实验内容主要算法设计typedefstructNode{floatcoef;intindex;structNode*next

3、;}LinkList;本程序涉及到多项式的建立、多项式的输出、两个多项式的相加减。用带头结点的单链表存储多项式;程序中共定义了5个函数:12voidInsert(LinkList*p,LinkList*h)//把节点p插入到链表h中LinkList*Creat_L(LinkList*head,intm)//创建一个链表,项数为mvoidPrintf(LinkList*L)LinkList*ADDlist(LinkList*head,LinkList*pb)LinkList*MinusList(LinkList*head

4、,LinkList*pb)四、程序源代码#include#include#include#includetypedefstructNode{floatcoef;intindex;structNode*next;}LinkList;voidInsert(LinkList*p,LinkList*h)//把节点p插入到链表h中{LinkList*q1,*q2;intflag=0;q1=h;if(p->coef==0)free(p);else{i

5、f(q1->next==NULL){q1->next=p;}12else{q2=q1->next;while(flag==0){if(p->indexindex){if(q2->next==NULL){q2->next=p;flag=1;}else{q1=q2;q2=q2->next;}}elseif(p->index>q2->index){p->next=q2;q1->next=p;flag=1;}else{q2->coef=p->coef+q2->coef;if(q2->coef==0){12q1->ne

6、xt=q2->next;free(q2);}flag=1;free(p);}}}}}LinkList*Creat_L(LinkList*head,intm)//创建一个链表,项数为m{inti;LinkList*q;head=(LinkList*)malloc(sizeof(LinkList));head->next=NULL;for(i=1;i<=m;i++){q=(LinkList*)malloc(sizeof(LinkList));q->next=NULL;printf("请输入第%d项的系数和指数:",i);s

7、canf("%f,%d",&q->coef,&q->index);Insert(q,head);}returnhead;}voidPrintf(LinkList*L){LinkList*p,*q,*pa;inti=0;12p=L->next;q=L->next;if(p==NULL){printf("0");return;}while(p){p=p->next;i++;}printf("%d,",i);while(q){printf("%g,",q->coef);printf("%d,",q->index);q=q

8、->next;}}LinkList*ADDlist(LinkList*head,LinkList*pb){LinkList*pc;intflag=0;while(flag==0){if(pb->next==NULL)flag=1;else{12pb=pb->next;pc=(LinkList*)malloc(sizeof(Link

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

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

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