《一元多项式加减乘除运算.pdf》由会员分享,可在线阅读,更多相关《一元多项式加减乘除运算.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、中国计量学院实验报告 实验课程:算法与数据结构 实验名称:一元二项式 班 级:学 号:姓 名:实验日期:2013-5-7 一 实验题目:创建 2 个一元多项式 实现 2 个多项式相加 实现 2 个多项式相减 实现 2 个多项式相乘 实现 2 个多项式相除 销毁一元多项式 实验成绩:指导教师:二 算法说明 存储结构:一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一
2、元多项式的相加、相减操作。加法算法 开始 定义存储结果的空链 r 是 否 输出存储多项式的和的链 r 结束 是 否 同指数项系数相加后存入 r直接把 p 中直接把 q 中存储多项式2的空存储多项式 1 的空合并同类项 三 测试结果 四 分析与探讨 实验数据正确,部分代码过于赘余,可以精简。五 附录:源代码#include#include#include typedef struct Polynomial float coef;int expn;struct Polynomial*next;*Polyn,Polynomial;出多项式a和bnt2.多项式相加a+bnt3.多项式相减 a-bn);
3、printf(t4.多项式相除 a*bnt5.多项式相除 a/bnt6.销毁多项式n);printf(t7.退出n*n);printf(执行:);scanf(%d,&flag);switch(flag)case(1):printf(多项式a:);PrintPolyn(pa);printf(多项式b:);PrintPolyn(pb);break;case(2):pc=AddPolyn(pa,pb);printf(多项式a+b:);PrintPolyn(pc);DestroyPolyn(pc);break;case(3):pd=SubtractPolyn(pa,pb);printf(多项式a-b:
4、);PrintPolyn(pd);DestroyPolyn(pd);break;case(4):pf=MultiplyPolyn(pa,pb);printf(多项式a*b:);PrintPolyn(pf);DestroyPolyn(pf);break;case(5):DevicePolyn(pa,pb);break;case(6):DestroyPolyn(pa);DestroyPolyn(pb);printf(成功销毁 2 个一元二项式n);printf(n接下来要执行的操作:n1 重新创建 2 个一元二项式 n2 退出程序n);printf(执行:);scanf(%d,&i);if(i=1)/Polyn pa=0,pb=0,pc,pd,pf;/定义各式的头指针,pa 与 pb 在使用前付初值 NULL printf(请 输 入 a 的 项数:);scanf(%d,&m);pa=CreatePolyn(pa,m);/建立多项式 a printf(请 输 入 b 的 项数:);scanf(%d,&n);pb=CreatePolyn(pb,n);/建立多项式 b break;if(i=2)return 0;case(7):return 0;