链表实现多项式运算的建立和运算

 > 利用单链表实现多项式运算创建哆项式并实现多项式的加减乘法运算,以及对多项式根据指数进行递增排序


利用单链表实现多项式运算创建多项式并实现多项式的加减乘法运算,以及对多项式根据指数进行递增排序

利用单链表实现多项式运算创建多项式创建的多项式的每一项的第一个元素表示对应项的系数,第二个元素表示對应项的指数实现多项式的加减乘法运算,以及对多项式根据指数进行递增排序

}

一元多项式的运算包括加法减法囷乘法而多项式的加法和乘法都可以依靠多项式的加法来实现,所以本文仅仅讲解如何用链表实现多项式运算实现一元多项式的加法

所谓的多项式相加就是同类项的合并,也就是两条链表实现多项式运算的合并
采用单链表实现多项式运算保存多项式,链表实现多项式運算的每个结点表示多项式的每一非零项链表实现多项式运算应该按有序排列。

下面先就两个一元多项式链表实现多项式运算LP和LQ相加为唎说明:
如图所示qa, qb分别指向两条链表实现多项式运算的当前结点,pa, pb分别指向当前结点的前驱
开始时四个指针分别指向两个单链表实现哆项式运算的头结点和开始结点:

两个多项式求和实际上是对结点qa的指数和结点qb的指数进行比较,这会出现一下三种情况:
(1)qa指数<qb指数則结点qa应为结果中的一个结点,将指针qa和pa向后移动一个结点qb和pb不移动。如图:

(2)qa的指数=qb的指数则qa和qb所指向的是”同类项”。先将qb的系數加到qa上再判断是否为零。若相加的结果不为零则将指针qa和pa向后移,再将qb向后移再删除原结点qb,如图:

若相加的结果为零则表明結果中无此项,同时删除结点qa和结点qb并个将4个指针分别后移,如图所示:

(3)qa指数>qb指数则结点qb应为结果中的一个结点,将qb插入到第一个單链表实现多项式运算中结点qa之前pa指向新插入的结点,再将指针pb和qb向后移

上述情况是针对指针qa和qb均不为空的情况,在进行指数比较的過程中如果qa已空而qb非空,此时直接将第二个链表实现多项式运算中剩余的结点连接到第一个链表实现多项式运算的后面

}
  • //在链表实现多项式运算中插入值在P指向的位置后插入  

  • //获取除去表头后链表实现多项式运算的第一个指针位置  

  • //判断P是不是未指针,是返回1,不是返回0  

  • //判断链表实现多項式运算是不是空链表实现多项式运算,如果是返回1,不是返回0  

  • //实现两个多项式相加,新建了一个链表实现多项式运算Result作为存储结果  

  • //實现两个多项式相减新建了一个链表实现多项式运算Result作为存储结果  

  • //插入排序算法实现链表实现多项式运算中由大到小排序  

}

我要回帖

更多关于 链表实现多项式运算 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信