多项式相加的函数(数据结构_C语言版)
更新时间:2023-08-09 09:02:02 阅读量: 综合文库 文档下载
一、编写一个程序用单链表存储多项式,并实现两个多项式相加的函数。
【源程序】#include<stdio.h>
#include <malloc.h>
#define MAX 20
typedef struct
{
float coef; int exp;
}PolyArray[MAX];
typedef struct pnode
{ float coef;//系数
int exp;//指数 struct pnode *next;
}PolyNode;
void DispPoly(PolyNode *L)//输出多项式
{
}
void CreateListR(PolyNode *&L,PolyArray a,int n)
//尾插法建立单链表
{
PolyNode *s,*r;int i; L=(PolyNode *)malloc(sizeof(PolyNode)); L->next=NULL; r=L; //创建头结点 PolyNode *p=L->next; while(p!=NULL) { } printf("%gx^%d",p->coef,p->exp); p=p->next; printf("\n"); //r始终指向终端结点,开始时指向头结点 for (i=0;i<n;i++) { s=(PolyNode *)malloc(sizeof(PolyNode));//创建新结点 s->coef=a[i].coef; s->exp=a[i].exp; r->next=s; r=s; //将*s插入*r之后 } r->next=NULL;
}
void Sort(PolyNode *&head)//按exp域递减排序
{ PolyNode *p=head->next,*q,*r;
if(p!=NULL) { r=p->next; p->next=NULL; p=r; while(p!=NULL)
} } q=head; while(q->next!=NULL&&q->next->exp>p->exp) q=q->next; p->next=q->next; q->next=p; p=r;
}
void Add(PolyNode *ha,PolyNode *hb,PolyNode *&hc)//求两个有序集合的并 {
PolyNode *pa=ha->next,*pb=hb->next,*s,*tc; float c; hc=(PolyNode *)malloc(sizeof(PolyNode)); tc=hc; while(pa!=NULL&&pb!=NULL) { if(pa->exp>pb->exp) { s=(PolyNode *)malloc(sizeof(PolyNode)); //复制结点 } s->exp=pa->exp; s->coef=pa->coef; tc->next=s; tc=s; pa=pa->next; else if(pa->exp<pb->exp) { s=(PolyNode *)malloc(sizeof(PolyNode)); //复制结点 } else { c=pa->coef+pb->coef; if(c!=0)//系数之和不为0事创建新结点 { s=(PolyNode *)malloc(sizeof(PolyNode)); s->exp=pa->exp; s->coef=c; tc->next=s; tc=s; s->exp=pb->exp; s->coef=pb->coef; tc->next=s; tc=s; pb=pb->next; } pa=pa->next; pb=pb->next;
} } if(pb!=NULL) pa=pb;//复制余下的结点 while(pa!=NULL) { s=(PolyNode *)malloc(sizeof(PolyNode)); //复制结点 } s->exp=pa->exp; s->coef=pa->coef; tc->next=s; tc=s; pa=pa->next; tc->next=NULL;
void main() { } PolyNode *ha,*hb,*hc; PolyArray a={{1.5,0},{2.5,1},{3.3,3},{-2.5,5}}; PolyArray b={{-1.5,0},{2.5,1},{3.7,3},{-2.5,5},{5.6,7}}; CreateListR(ha,a,4); CreateListR(hb,b,5); printf("原多项式A为:");DispPoly(ha); printf("原多项式B为:");DispPoly(hb); Sort(ha); Sort(hb); printf("有序多项式A:");DispPoly(ha); printf("有序多项式B:");DispPoly(hb); Add(ha,ha,hc); printf("多项式相加结果:");DispPoly(hc); printf("\n");
正在阅读:
多项式相加的函数(数据结构_C语言版)08-09
管理自我效能感对管理人员工作绩效和组织承诺的影响研究08-31
0~24个月儿童食物过敏的流行病学研究05-12
关于确定XXx同志为发展对象的公示会议记录Microsoft Word 文档09-07
欲速则不达作文600字07-05
免疫学检验题库05-06
老师讲解奇门遁甲 - 图文04-07
《云雀的心愿》教学设计09-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 多项式
- 数据结构
- 相加
- 函数
- 语言
- 不等式学案2恒成立问题(学生版)
- 扬州市中学高级教师专业技术资格条件(试行)
- 2013高考英语单选题分类汇编
- 初中作文开头、结尾的技巧和方法 2
- 美国学车到底用不用教练?告诉你大实话
- 四川省雅安市2015-2016学年高二英语下册第1周周考试题
- 《高级计量经济学》-厦门大学经济学院)
- 药害案例分析
- 驾驶员考核与奖惩办法
- 人教版一年级上册数学易错题1
- 初一体育与健康课教案-体操和田径
- 民营银行的发展路径改
- 网页切换特效
- TMS320F206外围电路典型设计
- 2016级《1.3.3节 地球的运动》练习案1
- 考研:安静读书是一件美好的事
- 实施农业机械购置补贴项目工作自查报告
- 第四课 我听过钢琴协奏曲《黄河》
- 消防培训与急救知识培训新闻稿
- 第二十二课 沙眼是怎么回事