(萌新写代码,欢迎各位大佬多多指教!)
假设我们已知多项式
A: B:
现在要求解这两个多项式的和。
第一步:用什么方式储存多项式?需要储存的数据有多项式的系数和指数,所以很自然的想到我们可以定义一个结构体数组,如下:
//定义存储多项式的数组
typedef struct
{
double xishu;
int exp;
}arr[max];
第二步:定义一个存储多项式的线性表,如下:
//定义单链表
typedef struct dxs
{
double xishu;
int exp;
struct dxs* next;
}dxs;
第三步:思考一个问题,如果我们要将这两个多项式相加,必定是要挑出相同次数的项将它们相加,次数不同的项保留。所以要比较两个多项式的次数,我们有必要将它们按照次数递减(或者递增)排序。
在线性表中,我们可以一个一个结点的比较和排序:
如图1所示,这是一个线性表,head是他的头节点,p,r 分别为两个指针。这个线性表中的第一个数据即为p的数据域,第二个数据为r的数据域。

最低0.47元/天 解锁文章
3万+





