数据结构-线性结构-题目-求两个多项式的乘法和加法

1 篇文章 0 订阅
1 篇文章 0 订阅

需求:给定两个多项式,求两个多项式的乘法和加法。具体是知道两个多项式的非零项系数和对应指数
已有知识:多项式如何存储?1.数组,下标对应指数。2.顺序存储结构表示非零项。结构体(包含两个元素,系数和指数,
再用数组 3. 链式存储结构表示。
思路:此处数据规模较大,数组直接表示显然不合适。用数组还是链表存非零项?由于已知输入是有序的,
故不需查找,链表没问题。且最大是1000,直接定义数组比较浪费空间。 加法没问题,遍历对应相加即可。
可是乘法呢?需要怎么做?人为做:拿其中一个多项式的第一项,依次乘另一个多项式的每一项,仍然是一个多项式,记录下指数和系数,
循环,得到项数少的那个多项式的项数个多项式。再循环,将指数相同的系数相加。 这样循环次数很多。
简化:在乘好一项后就添加到最终的多项式中,乘好后要搜寻已知多项式中指数相同的项,存非零项要依次搜寻。
故乘法得到的多项式可以用数组直接存储,较方便
步骤:1.建立链表结构表示多项式非零项,包含系数和指数
2.依次读入两个多项式,读入项数,做项数个循环,读入两个数据后,新建一个结点,插入到第一个多项式链表中。二同理。
3.做乘法:外重循环取第一个多项式的项,内重循环取第二个多项式的项,系数相乘,指数相加,将系数加入指数对应的数组的下标中
4.做加法:取两个多项式的第一项,进入循环,比较两者指数是否相同,若相同,系数相加,存放在第一个多项式中,若第一个小,则另一个大的结点插入第一个多项式
的当前项的前一项,另一个多项式后移一位,若第一个大,则第一个多项式后移一位。
bug:输入可能有零多项式,全程都没有考虑这点.
bug,要在原数组基础上加,而不是重新赋值
bug,加完系数就算为零,l2已经使用,所以要后移
bug:如果l1已经空,l1->next无意义。 插入直接是l1=l2;
bug:如果L1->next本身就是空的,那么改l1没用,要改L1
bug,此时l2已经为空,要重置
0326,18:00,终于ac了 ,下次可以换一种存储方式写(如不用链表)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值