C语言实现一元多项式的加法与乘法


问题描述

在这里插入图片描述
题目来源:PTA 数据结构与算法题目集(中文)7-2 一元多项式的乘法与加法运算 (20 分)


一、程序结果

在这里插入图片描述

二、实现步骤与程序说明

1.问题分析

题目涉及稀疏多项式的运算,相较于顺序存储结构,采用链式存储结构更为灵活。
对应的数据结构定义为(同严蔚敏教材):

typedef struct PNode{
   
   
	int coef;
	int expn;
	struct PNode *next;
}PNode, *Polynomial;

问题可拆分为:多项式的创建,多项式加法,多项式乘法,以及多项式的输出四个步骤,其中多项式的加法与乘法也可理解为和多项式与乘积多项式的创建过程,即前三个过程实现是相似的:
空 链 表 ⇒ 获 取 c o e f 、 e x p n 进 行 插 入 多 项 式 空链表\xRightarrow{获取coef、expn进行插入}多项式 coefexpn
因此,上述链表插入函数的实现是关键。

2.代码结构

主函数:

void Insert(int a,int e,Polynomial *P);  //链表的插入 
void CreatePolyn(Polynomial *P);         //多项式的创建 
Polynomial AddPolyn(const Polynomial P,const Polynomial Q);//多项式加法 
Polynomial MultiPolyn(const Polynomial P,const Polynomial Q);//多项式乘法 
void Print(Polynomial P);                //多项式的输出 

int main(){
   
   
	Polynomial P,Q,S,M;
	CreatePolyn(&P);
	CreatePolyn(&Q);
	S = AddPolyn(P,Q);
	M = MultiPolyn(P,Q);
	Print(M);
	Print(S);
	return 0;
}

链表的插入

函数参数:系数 a a a,指数 e e e;即将 a x e ax^e ax

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值