问题描述
能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输出;
算法思想
构建一个式子的结构体,包括系数,指数和指针域。分别输入各项的系数和指数,按照指数降序的方式存入到结构体链表中;输出多项式时,多项式为0,系数为1或是负数和指数为0或1,还有是否是最后一个式子的情况,都需要分别讨论;多项式相加即是若指数相等,则系数直接相加,不等则考虑将指数较大的一个式子存入和链表中。多项式相减与相加方法类似,但是要考虑指数较大的式子是被减数还是减数来决定是加号还是减号。
算法设计
1、菜单显示void menu()——供用户选择的功能菜单。
2、输出多项式void PrintfPolyn(Polynimial P)——输出多项式时,多项式为0,系数为1或是负数和指数为0或1,还有是否是最后一个式子的情况,都需要分别讨论。
3、建立多项式void CreatePolyn(Polynimial &P)——分别输入各项的系数和指数,按照指数降序的方式存入到结构体链表中。
4、多项式相加void AddPolyn(Polynimial P1,Polynimial P2)——则系数直接相加,不等则考虑将指数较大的一个式子存入和链表中。
5、多项式相减void MinusPolyn(Polynimial P1,Polynimial P2)——多项式相减与相加方法类似,但是要考虑指数较大的式子是被减数还是减数来决定是加号还是减号。
6、主函数int main()——使用while循环和switch对功能进行调用,使用清屏函数,使界面更美观。
代码实现
#include<stdio.h>//一元稀疏