链表的应用:单元多项式的加法、减法、乘法

本文介绍了如何使用链表来实现一元多项式的加法、减法和乘法。通过链表结构表示单元多项式,详细阐述了加法、减法和乘法的运算过程,并提供了两种不同的加法实现方式。文章还提醒读者减法操作会破坏poly2,并给出了调用这些运算的顺序建议。最后提供了完整的代码下载链接。
摘要由CSDN通过智能技术生成

使用链表来实现单元多项式的加法、减法、乘法。一个单元多项式的节点结构无非是这样的:系数域、指数域、链域。

如下图:

我们使用链表来模拟单元多项式的常见运算。其中,加法是其它运算的基础,减法:poly1-poly2=poly1+(-poly2),乘法:poly1*poly2,可用poly1乘以poly2的每一项,相加其乘积结果。

单元多项式的节点结构类型是这样的:

typedef struct node
{
	float coef;   //系数 
	int expn;     //指数 
	struct node *next;
}PolyNode;      //多项式节点 polynomial node 

多项式的加法我们提供了两种:

1.Polynomial polyAdd(Polynomial poly1, Polynomial poly2),把poly1和poly2相加得到一个新的多项式,相加的过程中poly1和poly2保持不变,不会被破坏。

2.void add(Polynomial poly1, Polynomial poly2),把poly2加到poly1上,相加的过程中poly2的节点会被利用上。结束后,poly2不存在了。

提供第一种加法,是为了保持poly1和poly2不变,以便进行下一次的运算。提供第二种加法,是为了运算结束后,内存不会泄露。

其它具体细节得看代码了:

#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
	float coef;   //系数 
	int expn;     //指数 
	struct node *next;
}PolyNode;      //多项式节点 polynomial node 
typedef PolyNode* Polynomial;
Polynomial createPolynomial()   //创建多项式 
{
	PolyNode *p, *q, *head = (PolyNode *)malloc(sizeof(PolyNode));   //头节点 
	head->next = NULL;
	float coef;
	int expn;
	printf("输入该多项式每一项的系数和指数,每项一行,输入0 0结束ÿ
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值