多项式相加的函数(数据结构_C语言版)
一、编写一个程序用单链表存储多项式,并实现两个多项式相加的函数。
【源程序】#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");
…… 此处隐藏:66字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




