




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
闽江学院电子系
实验报告学生姓名:曹韦[班级:I学号:3142731课程:数据结构与算法一、实验题目:线性表的综合应用二、实验地点:计算机软件与网络实验室-实验楼A210三、实验目的:1.掌握顺序表和链表的概念,学会对问题进行分析,选择恰当的逻辑结构和物理结构;加深对顺序表和链表的理解,培养解决实际问题的编程能力。四、实验内容:实现一元稀疏多项式的表示及基本操作(建立,销毁,输出,加法,减法,求项数等操作);一元多项式一定要包含系数项和指数项的描述,对一元多项式的基本运算,可应用两个有序链表合并的思想进行。五、实验环境(使用的软硬件):利用VisualC++集成开发环境进行本实验操作。六、实验步骤及操作:“建立多项式算法”操作结果:输入m项的系数和指数,建立一个一元多项式P“销毁多项式算法”初始条件:一元多项式P已存在;操作结果:销毁一元多项式P“输出多项式算法”初始条件:一元多项式P已存在;操作结果:打印一元多项式P“多项式加法算法”初始条件:两个多项式的Pa,Pb已存在;操作结果:Pa=Pa+Pb,并销毁Pb“多项式减法算法”初始条件:两个多项式的Pa,Pb已存在;操作结果:Pa=Pa-Pb,并销毁Pb“求多项式项数的算法”初始条件:一元多项式P已存在;操作结果:返回P中的项数;七、实验结果:程序如下:#include<stdio.h>#include<stdlib.h>typedefstructnode(floatcoef;intexpn;structnode*next;}LinkList;//建立多项式算法LinkList*GreatePloyn()(LinkList*p,*head,*r;floata;intn;head=(LinkList*)malloc(sizeof(LinkList));head->next=NULL;r=head;printf("PleaseInputOnePloyn:\n");scanf("%f”,&a);while(a!=0){scanf("%d”,&n);p=(LinkList*)malloc(sizeof(LinkList));p->coef=a;p->expn=n;p->next=NULL;r->next=p;r=r->next;scanf("%f”,&a);returnhead;…式算法voidDestroyPloyn(LinkList*L){LinkList*p,*r;p=L->next;while(p!=NULL){r=p->next;free(p);p=r;free(L);…式算法voidPrintPloyn(LinkList*L){LinkList*p;p=L->next;while(p!=NULL){printf("%6.2fX%d",p->coef,p->expn);p=p->next;if(p!=NULL)printf("+");}printf("\n");}〃多项式加法voidAddPloyn(LinkList*A,LinkList*B){LinkList*p,*q,*s,*r;floatt;p=A->next;q=B->next;s=A;B->next=NULL;while((p!=NULL)&&(q!=NULL)){if(p->expn>q->expn){r=q->next;q->next=p;s->next=q;s=q;q=r;}elseif(p->expn<q->expn){s=p;p=p->next;}else{t=p->coef+q->coef;if(t!=0){p->coef=t;s=p;}else{s->next=p->next;free(p);}p=s->next;r=q;q=q->next;free(r);}}if(q!=NULL)s->next=q;DestroyPloyn(B);}〃多项式减法算法voidSubstract(LinkList*A,LinkList*B)(LinkList*p,*q,*s,*r;floatt;p=A->next;q=B->next;s=A;B->next=NULL;while(p&&q)(if(p->expn>q->expn){r=q->next;q->next=p;~q=r;elseif(p->expn<q->expn){s=p;p=p->next;}else{t=p->coef-q->coef;if(t!=0){p->coef=t;s=p;}else{s->next=p->next;free(p);}p=s->next;r=q;…free(r);if(q!=NULL){s->next=q;while(q){q->coef=-q->coef;q=q->next;}}口…;//求多项式项数的算法intPloynLength(LinkList*L){LinkList*p;intn=0;p=L->next;while(p)}„「顾n;//主函数voidmain(){LinkList*P1,*P2;charch;printf("PleaseInputYouWant:");scanf("%c”,&ch);P1=GreatePloyn();P2=GreatePloyn();printf("P1=");PrintPloyn(P1);printf("P2=");PrintPloyn(P2);switch(ch)(case'+':AddPloyn(P1,P2);break;case'-':Substract(P1,P2);break;case'*':break;default:printf("ERROR!!!\n");}printf("ThisPloynLengthis:%d\n”,PloynLength(P1));switch(ch)(case'+':printf("P1+P2=");break;case'-':printf("P1-P2=");break;case'*':break;default:printf("ERROR!!!\n");}PrintPloyn(P1);}测试数据为:(2x+5x8-3.1x11)+(7-5x8+11x9)(6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15)(x+x2+x3)+0(x+x3)-(-x-x3)程序测试:说明:以系数项为0作为建立一元多项式的结束标志,’\n’代表键盘上的回车编译程序,无显示错误。继续运行Configuration:3.18-Win32DebugCompiling...3.18.c3.18.obj-Qerror(s),Quarning(s)输入:1)+2)2侦1’\n’5’\n’8’\n’-3.1’\n’11’\n’0’\n’7’\n’0’\n’5’\n’8’\n’11’\n’9’\n’0’\n’
(3)输出:-3-00X0+-1.00X1+4.40X2+-1.20X9-3-00X0+5.40M2+7.80X156.O0K1+P2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年合同到期解约申请模板
- 2025年药店店员合同模板
- 一年级下册数学教案-两位数加减整十数、一位数的口算 (20)-西师大版
- 分数的初步认识(一)练习十一(教案)2024-2025学年数学三年级上册 苏教版
- 2024年人工种植牙项目投资申请报告代可行性研究报告
- 2025年杭州科技职业技术学院单招职业倾向性测试题库1套
- 2025届黑龙江省“六校联盟”高三上学期联考化学试题及答案
- 2025年度教师专业成长路径规划聘用合同
- 2025年度养老产业简易版股份转让合同模板
- 2025年度文化旅游产业合作授权委托书
- 舞台设计课件
- 高中劳动教育课教案8篇
- 急性髓性白血病教学查房课件
- 高中英语 高中阅读高频单词
- 初一年级班级日志记载表(详)
- 《胃癌课件:病理和分子机制解析》
- 生产制造企业流程汇编
- 国际贸易实务课程教案
- 部编版六年级语文下册全册课件PPT
- 人教版三年级数学下册 (认识东北、西北、东南、西南)位置与方向课件
- 与食品经营相适应的主要设备设施布局、操作流程等文件
评论
0/150
提交评论