【问题描述】 编写一个程序用单链表存储多项式,并实现两个一元多项式A与B相加的函数。A,B刚开始是无序的,A与B之和按降序排列。例如: 多项式A: 1.2X^0 2.5X^1 3.2X^3 -2.5X^5 多项式B: -1.2X^0 2.5X^1 3.2X^3 2.5X^5 5.4X^10 多项式A与B之和:5.4X^10 6.4X^3 5X^1 【输入形式】 任意两个多项式A和B 【输出形式】 多项式中某一项的系数与指数,系数保留一位小数 【输入样例】 1.2 0 2.5 1 3.2 3 -2.5 5 -1.2 0 2.5 1 3.2 3 2.5 5 5.4 10 2 【输出样例】 6.4 3 【样例说明】 第一个多项式的系数与指数对,以空格隔开 第二个多项式的系数与指数对,以空格隔开 输出第2项的系数与指数,系数与指数间用空格隔开,系数保留一位小数 【评分标准】 必须用链表实现
时间: 2023-05-29 11:01:17 浏览: 95
数据结构(C语言)用单链表存储一元多项式-并实现两个多项式的相加运算.doc
5星 · 资源好评率100%
思路:
首先定义一个结构体用来表示多项式中的每一项,包括系数和指数,然后定义一个链表用来存储整个多项式。
对于输入的每一个项,都新建一个节点存储它的系数和指数,并插入到链表中。由于初始时是无序的,因此可以使用插入排序将链表按照指数从大到小排序。
然后定义一个函数用来实现两个多项式的相加,遍历两个链表,将相同指数的项相加,如果某个多项式已经遍历完了,直接将另一个多项式中剩余的项插入到结果链表后面即可。最后按照指数从大到小输出结果链表。
代码如下:
阅读全文