欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    一元多项式的表示与相加运算.docx

    • 资源ID:3191195       资源大小:38.27KB        全文页数:6页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    一元多项式的表示与相加运算.docx

    一元多项式的表示与相加运算 西 安 邮 电 大 学 课内实验报告 实验名称: 一元多项式的表示与相加运算 专业名称: 通信工程 班 级: 通工1312 学生姓名: 周鹏飞 学号: 03131044 指导教师: 陈琳 实验日期: 一. 实验目的及实验环境 1、实现单链表的建立 2、实现一元多项式的表示 3、实现一元多项式的相加运算 4、VC+6.0运行环境 二. 实验内容 1、实现一元多项式的相加运算 三方案设计 为实现多项式的相加运算 1)用两个单链表分别表示两个一元多项式。 2)多项式向相加的运算规则 1指数相同项的对应系数相加,若和不为0,则构成“和多项式”中的一项。 2指数不相同的项仍按升幂顺序复抄到“和多项式”中。 以单链表polya和polyb分别表示两个一元多项式A和B,A+B的求和运算,就等同于单链表的插入问题,因此“和多项式”中的结点无需另生成。 为实现处理,设p、q分别指向单链表polya和poly b的当前项,比较p、q结点的指数项,由此得到以下运算规则: 1若p->exp<q->exp,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。 2若p->exp=q->exp,则将两个结点中的系数相加,当和不为0是修改结点p的系数域,释放q结点;若和尾0,则和多项式中无此项,从A中删去p结点,同时释放p和q结点。 3若p->exp>q->exp,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。 四测试数据及运行结果 截图如下: 五总结 实验过程中遇到的问题及解决办法: 问题:写完程序后,出现错误。 解决方法:查看程序提示,双击左键,寻找错误点。找到错误,并进行修改。 不能熟练运用链栈及指针 解决办法:查阅书籍,提高自己对链表及指针的认识,掌握使用链表及指针的技巧 对设计及调试过程的心得体会: 编写的程序要按照正当的程序要求,不能遵循人的思维。 编写程序时注意对链栈及指针的使用,注意各个出错的点及逻辑性错误。 提高自己对链表与指针的认识。 六附录:源代码 实现代码如下: 建立多项式 Polynomial * Create(void) Polynomial *head, *rear, *s; int c, e; head = (Polynomial *)malloc(LEN); /建立多项式头结点 rear = head; /rear始终指向单链表的尾,便于尾插法建表 printf("系数(当系数输入为0时,多项式结束):"); scanf("%d",&c); printf("n"); printf("指数:"); scanf("%d",&e); printf("n"); while(c!=0) s = (Polynomial *)malloc(LEN); s->cofe = c; s->expn = e; rear->next = s; rear = s; printf("系数:"); scanf("%d",&c); printf("n"); printf("指数:"); scanf("%d",&e); printf("n"); rear->next = NULL; return (head); 两多项式相加 Polynomial* AddPolyn(Polynomial* pa,Polynomial* pb) Polynomial *qa = pa->next; Polynomial *qb = pb->next; Polynomial *headc, *pc, *qc; pc=(Polynomial *)malloc(sizeof (Polynomial); pc->next = NULL; headc = pc; while(qa != NULL&&qb != NULL) qc = (Polynomial *)malloc(sizeof(Polynomial); if(qa->expn < qb->expn) qc->cofe = qa->cofe; qc->expn = qa->expn; qa = qa->next; else if(qa->expn = qb->expn) qc->cofe = qa->cofe+qb->cofe; qc->expn = qa->expn; qa = qa->next; qb = qb->next; else qc->cofe = qb->cofe; qc->expn = qb->expn; qb = qb->next; if(qc->cofe != 0) qc->next = pc->next; pc->next = qc; pc = qc; else free(qc); while(qa != NULL) qc = (Polynomial *)malloc(sizeof (Polynomial); qc->cofe = qa->cofe; qc->expn = qa->expn; qa = qa->next; qc->next = pc->next; pc->next = qc; pc = qc; while(qb != NULL) qc = (Polynomial *)malloc(sizeof (Polynomial); qc->cofe = qb->cofe; qc->expn = qb->expn; qb = qb->next; qc->next = pc->next; pc->next = qc; pc = qc; return (headc); 多项式的输出 void PrintPolyn(Polynomial* p) Polynomial* q; int flag = 1; q = p->next; if(!q) putchar('0'); printf("n"); return; while(q) if(q->cofe>0&&flag!=1) putchar('+'); if(q->cofe!=1&&q->cofe!=-1) printf("%d",q->cofe); if(q->expn=1) putchar('X'); else if(q->expn) printf("X%d",q->expn); else if(!q->expn) putchar('1'); else if(q->expn=1) putchar('X'); else printf("X%d",q->expn); if(q->cofe=-1) if(!q->expn) printf("-1"); else if(q->expn=1) printf("-X"); else printf("-X%d",q->expn); q = q->next; flag+; printf("n"); 主函数 void main(void) Polynomial * polya,* polyb, * q; printf("tttt欢迎使用n"); printf("n请输入第一个多项式:nn"); polya=Create; /*调用建立链表函数,创建多项式A*/ PrintPolyn(polya); printf("n请输入第二个多项式:nn"); polyb=Create; /*同理,创建B*/ PrintPolyn(polyb); printf("n多项式的和为:nn"); q=AddPolyn(polya,polyb); /*调用一元多项式相加函数*/ PrintPolyn(q); /*调用输出函数,打印结果*/ printf("n"); getch;

    注意事项

    本文(一元多项式的表示与相加运算.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开