实验内容:一元多项式求和。

把任意给定的两个一元多项式P(x) ,Q(x) 输入计算机,计算它们的和并输出计算结果。

实验说明:

一元多项式可以用单链表表示,结点结构图示如下

coef exp next

一元多项式算法伪代码如下:

1. 工作指针p、q初始化;

2. while(p存在且q存在)执行下列三种情形之一

2.1 如果p->exp<q->exp,则指针p后移;

2.2 如果p->exp>q->exp,则

2.2.1 将结点q插入到结点p之前;

2.2.2 指针q指向原指结点的下一个结点;

2.3 如果p->exp=q->exp,则

2.3.1 p->coef =p->coef+q->coef;

2.3.2 如果p->coef ==0,则执行下列操作,否则,指针p后移;

2.3.2.1 删除结点p;

2.3.2.2 使指针p指向它原指结点的下一个结点;

2.3.3 删除结点q;

2.3.4 使指针q指向它原指结点的下一个结点;

3. 如果q不为空,将结点q链接在第一个单链表的后面;

#include<stdio.h>
#include<malloc.h>typedef struct LNode
{int coef;//系数int exp;//指数struct LNode *next;
}LinkNode;void CreatList(LinkNode *&L)//创建多项式
{int m, coef, exp;L = (LinkNode*)malloc(sizeof(LinkNode));LinkNode *s, *r;r = L;printf("请输入多项式的项数:\n");scanf("%d", &m);for (int i = 0; i < m; i++){printf("输入第%d项的系数和指数", i + 1);scanf("%d%d", &coef, &exp);s = (LinkNode *)malloc(sizeof(LinkNode));s->coef = coef;s->exp = exp;r->next = s;r = s;}r->next = NULL;
}
int ListLength(LinkNode*&L)//链表长度
{int n = 0;LinkNode *p = L;while (p->next != NULL){n++;p = p->next;}return n;
}void DispList(LinkNode * L)//输出多项式
{int j = 0;LinkNode *p = L->next;while (p != NULL){printf("%dX^%d", p->coef, p->exp);j++;if (j < ListLength(L)) printf("+");p = p->next;}printf("\n");
}LinkNode*ListAdd(LinkNode *p, LinkNode *q)//多项式相加
{LinkNode *L, *s, *r;p = p->next;q = q->next;L = (LinkNode *)malloc(sizeof(LinkNode));r = L;while (p!= NULL && q!= NULL){if (p->exp > q->exp){s = (LinkNode *)malloc(sizeof(LinkNode));s->coef = p->coef;s->exp = p->exp;r->next = s;r = s;p = p->next;}else if(p->exp == q->exp){s = (LinkNode *)malloc(sizeof(LinkNode));s->coef = p->coef + q->coef;s->exp = p->exp;if (s->coef == 0) free(s);else{r->next = s;r = s;}p = p->next;q = q->next;}else{s = (LinkNode *)malloc(sizeof(LinkNode));s->coef = q->coef;s->exp = q->exp;r->next = s;r = s;q = q->next;}}if (p!= NULL)r->next = p;else if(q != NULL)r->next = q;elser->next = NULL;return L;}int main(){LinkNode *P, *Q;printf("请输入第1个多项式:\n");CreatList(P);DispList(P);printf("请输入第2个多项式;\n");CreatList(Q);DispList(Q);LinkNode *L = ListAdd(P, Q);printf("最后多项式为:");DispList(L);return 0;}

实验:一元多项式求和相关推荐

  1. 7-207 孔融分梨(函数实现)7-208 sdut-C语言实验- 数列求和2

    目录 7-207 孔融分梨(函数实现) 7-208 sdut-C语言实验- 数列求和2 7-207 孔融分梨(函数实现) 分数 10 全屏浏览题目 切换布局 作者 lsr 单位 枣庄学院 孔融没有兄弟 ...

  2. 请大lao帮我康康代码(拜托拜托)一元多项式求和的c++代码

    #include<iostream> #include<malloc.h> #include<cstdio> #include<stdlib.h> us ...

  3. 两个一元多项式求和(新)(C语言)

    [问题描述]编写一个程序实现两个一元多项式相加的运算. #include<stdio.h> int main() {int i,a[51]={0},s,t,m,n;scanf(" ...

  4. 单链表一元多项式求和java_计算一元多项式的相加

    一元多项式的表达和相加 ​ 使用单链表表示一元多项式,由于使用java语言自己编写实现,没有使用LinkedList集合实现.所以需要创建单链表的类,类中包含指数,系数和后继元素的地址.类的设计如下: ...

  5. C语言数组求两个一元多项式,【C/C++】两个一元多项式求和(新)

    这些题目都是大一刚入学时学习C语言的课后作业,在OJ上看到还保留着,就都整理下发出来吧......(只有题和代码) [问题描述]编写一个程序实现两个一元多项式相加的运算. [输入形式]从标准输入中读入 ...

  6. c++单链表 一元多项式求和_C++一元多项式相加

    匿名用户 1级 2010-12-08 回答 #include "stdafx.h" #include using namespace std; template class SqL ...

  7. 数据结构单链表——一元多项式求和(C语言版)

    这里测试用例有很多的坑 我是一点点改出来的: 输入的多项式正负全抵消,输出是一个0,而不是多个0 输入的多项式其中一个为-1,-1,即为空 输入的多项式两个都为-1,-1时,结果为0 我的思路是在A链 ...

  8. 一元多项式求和的C++

    还是先来题目,我们一起看看吧. 输出情况是:   #include<iostream> using namespace std;struct Data{int coef;int exp;} ...

  9. 实验三-密码破解技术

    学   号 201421430010   中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验三 密码破解技术   ...

最新文章

  1. python可以做什么开发-Python能做什么,能够开发什么项目?
  2. 韩国遭到日本制裁,三星被打回原形,原来是个组装工厂?
  3. (简单)华为荣耀4A SCL-TL00的usb调试模式在哪里打开的方法
  4. 防火墙(2)——firewalld
  5. 【渝粤题库】陕西师范大学151204 中级财务会计作业(笔试题型)
  6. ASP.NET -- WebForm -- Cookie的使用 应用程序权限设计 权限设计文章汇总 asp.net后台管理系统-登陆模块-是否自动登陆 C# 读写文件摘要...
  7. ECCV 2020 | 小米提出 Fair DARTS :公平的可微分神经网络搜索
  8. Tensorflow之 CNN卷积神经网络的MNIST手写数字识别
  9. C++编译过程中没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题? 的彻底解决...
  10. python爬虫哪个选择器好用_Python爬虫学习8-css选择器使用
  11. linux上应用程序的执行机制
  12. gifimageview 大小不受控制_大小不变,提示换药?别紧张!三个案例解读“肿瘤大小与疗效关系”...
  13. 9、java常用 设计模式
  14. oracle block corrupted,ORA-01578: ORACLE data block corrupted (file # 6, block # 132)
  15. 10种舒服的颜色及配色推荐
  16. 【uniapp】解决uni.previewImage图片模糊问题
  17. Pygame 官方文档 - pygame.display
  18. 三、uboot简单介绍
  19. 京东回应淘汰员工,这是要过冬节奏?
  20. cka考试指南-简单高效

热门文章

  1. Java中的映射Map - 入门篇
  2. 用python函数画德国国旗代码_求一段python中用class方法绘制国旗的代码!记得不是常见的海龟做法!这个星期给我再加送财富点!...
  3. 2022爱分析· IT运维厂商全景报告
  4. Nginx的6种负载均衡策略
  5. 常用搜索引擎查询命令收集:site,intitle,and,or,domain,mp3,inur
  6. Schnorr签名介绍
  7. 本人开始转行到SAP开发
  8. centos系统slurm安装
  9. centos8 网络图标不见了
  10. 构建智慧城市的“新细胞”:“未来社区”