双向链表及其应用——实现多项式的加法及乘法——C++实现

本文详细介绍了如何使用freelist构建双向链表,并利用这种数据结构实现两个一元多项式的加法和乘法,最终结果多项式按指数降序排列。通过实例展示了从输入到输出的全过程。
  1. 编写使用freelist (可利用空间表)的带头、尾结点的双向链表类的定义,实现双向链表的基本操作。
  2. 利用双向链表实现2个一元多项式的加法和乘法运算,运算结果得到的链表要求按照指数降序排列的多项式。
    输入格式:

3 2 //第一行,两个正整数分别表示多项式的项数
5 4 //输入第一个多项式各项的系数和指数,按指数降序输入
-3 2
1 0 //第一个多项式:5x4-3x2+1
6 2 //输入第二个多项式各项的系数和指数,按指数降序输入
-3 1 //第二个多项式:6x2-3x

输出格式:

4 //相加得到的多项式的项数
5 4 //每一项的系数与指数,按指数降序排列输出
3 2
-3 1
1 0 //和:5x4+3x2-3x+1
6 //相乘得到的多项式的项数
30 6
-15 5
-18 4
9 3
6 2
-3 1 //乘积:30x6-15x5-18x4+9x3+6x2-3x

为了大家方便测试,这里提供了测试用例的引用。
输入:

3 2
5 4
-3 2
1 0
6 2
-3 1

输出:

4
5 4
3 2
-3 1
1 0
6
30 6
-15 5
-18 4
9 3
6 2
-3 1


【解决方案】

version1.0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值