02-线性结构2 一元多项式的乘法与加法运算(20 分)
设计函数分别求两个一元多项式的乘积与和。
输入格式:
输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:
输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0
。
输入样例:
4 3 4 -5 2 6 1 -2 0
3 5 20 -7 4 3 1
输出样例:
15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1
5 20 -4 4 -5 2 9 1 -2 0
该题主要是考对链表的熟练度,我写了一个半小时,调试了一个半小时,说明不是很熟悉,要经常练习才行。
1、多项式相加是没有什么难度的,只需要一次遍历即可完成,只需要注意零多项式与常数相加,这里要特别注意分析题目,什么是零多项式的输入,输入0即可,无系数与指数。相加的时候后面的0不要输出了。时间复杂度O(N)。
2、多项式相乘,这里有些复杂,我写的代码比较长,分别对应相乘、相加、排序、删0四步。这样写的好处就是清晰,方便调试。其中排序地方有个小技巧,我用到了非常简单的选择排序,不是操作链表的插入删除,而