一、问题描述
把任意给定的两个一元多项式P(x) ,Q(x) 输入计算机,计算它们的和并输出计算结果。
二、实现思路
一元多项式可以用单链表表示,结点结构图示如下:

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

实现一元多项式求和应采用单链表结果实现。一元多项式采用链式存储结构,相对顺序存储来说,可以节约存储空间。其中,一个结点表示一元多项式的某一项。单链表结点里有变量coef、exp、next,分别表示多项式中某一项的系数、指数、下一结点地址。在程序里,定义了链表的创建、销毁、合并、输出等模块。合并模块采用实验说明中的一元多项式算法伪代码来实现。根据一元多项式相加的运算法则,对于两个多项式中所有指数相同的项,对应系数相加,若其和不为零,则构成新多项式的一项;对于两个多项式中所有指数不同的项,分别复制到新多项式中。新多项式不必另外生成,而是在原来的两个多项式中摘取结点即可。
三、解题代码
#include<iostream>
using namespace std;
typedef struct Polynimial
{
double coef; //系数
int exp; //指数
struct Polynimial *next;
}Polynimial,*PolynimialList;
/*创建一元多项式*/
void CreatePolynimial(PolynimialList &L)
{
double coef;
int exp;
L = new Polynimial; //创建头节点,其next域置为NULL
L->next = NULL;
Polynimial *p;
Polynimial *r = L; //r始终指向尾结点,初始时指向头结点
cout << "请依次输入多项式的系数与指数(输入指数为0表示结束):" << endl;
cin >> coef >> exp;
while (coef!=0) //循环建立数据结点p
{
p=(Polynimial *)new Polynimial;
p-

本文介绍了如何使用链表数据结构实现一元多项式的加法操作,包括创建、合并和销毁多项式,通过伪代码和C++代码详细展示了整个过程。
最低0.47元/天 解锁文章
2517

被折叠的 条评论
为什么被折叠?



