C/C++多项式链式存储结构及其代数运算[2023-07-22]

发布时间 2023-07-22 21:49:59作者: programwriter

C/C++多项式链式存储结构及其代数运算[2023-07-22]

41 多项式链式存储结构及其代数运算
(1)问题描述
设计并建立一个链式存储分配系统来表示和操作多项式。为了避免对零和非
零多项式进行不同的处理,使用带头结点的循环链表。为了充分利用多项式中不
再使用的结点,维护一个可用空间表 avail,把不再使用的多项式的结点链入其中。
当需要一个新结点时,就查看这个单链表 avail。如果表非空,那么可以使用它
的一个结点。只有当该表为空时,才使用动态存储分配来创建新结点。
(2)基本要求
设计多项式的存储结构,编写并测试下列函数:
a)get_node 和 ret_node,从/向可用空间表申请和插入一个多项式结点。
b)pread,读取一个多项式,并将其转换成循环存储表示。返回指向该多项
式的头结点的指针。
c)pwrite,输出多项式,采用能够清楚显示的形式。
d)padd,计算 d=a+b。不改变 a 和 b。
e)psub,计算 d=a-b。不改变 a 和 b。
f)pmult,计算 d=a*b。不改变 a 和 b。
g)eval,计算多项式在某点 a 的值,其中 a 是一个浮点型常量。返回结果为
浮点数。
h)perase,把存储表示为循环链表的多项式返还给可用空间表。
(3)实现提示
为了进一步简化加法算法,把多项式的头结点的指数域设为-1。

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111