实验三.链表及其多项式相加(答案).doc

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

实验三、 链表及其多项式相加 、程序流程图 1. 主过程 2. 建立多项式链表流程 N Y N Y 参考程序 /* 链表及其多项式相加 */ typedef struct linkline { int coef; int exp; struct linkline *next; } line; line *creat() { /*建立多项式列表*/ int n; line *head; line *p1,*p2; n=0; printf((输入的数必须是整数,指数须从小到大依次输入,系数为零表示多项式结束)\n); p1=p2=(line *)malloc(sizeof(line)); /*开辟一个新单元*/ scanf(%d%d,p1-coef,p1-exp); /*录入多项式*/ if (p1-coef==0) head=0; else { while(p1-coef!=0) { n++; if (n==1) head=p1; else p2-next=p1; p2=p1; p1=(line *)malloc(sizeof(line)); scanf(%d%d,p1-coef,p1-exp); } p2-next=0; } return(head); } /* 以下是输出多项式的函数 */ void print(line *p) { line *p0; p0=p; printf( ); if(p0!=0) do { printf(%dx的%d次幂,p0-coef,p0-exp); p0=p0-next; if(p0!=0) printf(+); } while(p0!=0); else printf( 空多项式!!); printf(\n); } int compare(int m,int n) /*比较两个整数的大小的函数*/ { int j; if (mn) j=-1; if (m==n) j=0; if (mn) j=1; return(j); } void freeNode(line *w1) /* 释放一个表中的所有结点 */ { line *w2; w2=w1-next; while(w1) { free(w1); w1=w2; w2=w2-next; } } line *AddLine(line *ha,line *hb) /*两个非空多项式相加*/ { line *la,*lb,*lc; int a,b,sum; lc=ha; la=ha; lb=hb; if ((ha==0)(hb!=0)) return(hb); while ((la!=0)(lb!=0)) { a=la-exp; b=lb-exp; switch( compare(a,b) ) /*比较当前结点指数的大小 */ { case -1: { ha=la; /*只修改la的指针*/ la=la-next; break; } case 0: { sum=la-coef+lb-coef; if(sum!=0) { /* 将其不为零的系数和保存 */

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档