多项式相加的函数(数据结构_C语言版)
更新时间:2023-05-11 01:33:01 阅读量: 实用文档 文档下载
一、编写一个程序用单链表存储多项式,并实现两个多项式相加的函数。
【源程序】#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语言版)05-11
自己整理的教育心理学笔记10-07
2014年春季运动会秩序册08-15
歌声响起作文600字06-22
2018年高考第一轮复习英语知识点扫描大全 - 图文05-23
证券事务代表的任职资格整理汇总03-18
3D - max命令03-15
EA编程实训课程 - 图文04-01
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 多项式
- 数据结构
- 相加
- 函数
- 语言
- 数据结构导论_自学考试_概念整理
- TiO2石墨烯复合材料的制备及其光催化性能
- 高二数学模块检测数学试题(文)答案
- 不等式学案2恒成立问题(学生版)
- 【坐飞机注意事项大全】不管你做没做过飞机,都应该来简单学习一下的哦~~~
- 良好的学习习惯是学好英语的通道
- 国际直接投资与跨国公司发展
- 2010年安庆市中考(一模)物理命题思考
- 美国学车到底用不用教练?告诉你大实话
- 人教版小学五年级语文上册第三单元作文教学设计习作3教案
- 口袋妖怪心金魂银全493精灵捕捉表
- 修旧利废实施细则
- 万能材料试验机期间核查数据和结果记录
- 湖北省武昌区2010-2011学年七年级数学第一学期期末调研考试试题_人教新课标
- 美联储议息会议主要观点及对市场的影响综述
- 高三语文作文经典句子
- 西方经济学课后计算题答案
- TMS320F206外围电路典型设计
- 《心理学》作业答案
- 网络安全漏洞及解决