c++数据结构一元多项式_数据结构实验题(求两个一元多项式的和)

本文介绍了一道数据结构实验题,涉及如何用C++求解两个一元多项式的和。通过详细阐述思路并提供完整代码,展示了O(M*N)时间复杂度的算法实现。
摘要由CSDN通过智能技术生成

题目描述:

2165a8c63df419856ecd39c5b99c68f9.png


思路:

 一开始 我的想法是用一个顺 序表来 存储 多项式 ,然后进行运算。 但 后来发现 顺序表 适用于 稠 密多 项式 ,对于 稀 疏多项式 (即相邻 项的幂相差很大 ) 来说时间就不可接受了 。 那怎么解决 这个问题呢? 那就是用一个链表 。 利用链表的特性可以直接 跳过 中间那些系数为0的项,从而大大节省时间。 相加操作的执行有一点归并排序的思想。即利用两个指针的移动,来判断当前哪个指针指向的项的幂大,幂大的就添加到sum求和多项式里,若幂相同则将系数相加再添加到sum求和多项式里(需要注意若系数相加后为0,则应该将此项的幂也变为0,即零多项式应输出 0 0)。

完整代码如下:

#include typedef struct Node  {
        int coef;    //项的系数    int exp;     //项的幂    struct Node *next;} PolyTerm;PolyTerm *Createpoly(PolyTerm *L, int m) //创建一个m项多项式{
        PolyTerm *p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值