#include <stdio.h>
#include <stdlib.h>
typedef struct PolyNode *Polynomial;//存储结构为:带头节点的单链表
struct PolyNode {
int coef;//多项式系数
int expon;//多项式指数
Polynomial next;//指向下一个节点
};
typedef Polynomial PList;
typedef struct array{
//建立一个线性表,用来作为中转将单链表逆序
int *data;//存单链表中多项式的数据,下标表示多项式的指数
int size;//线性表的大小
int length;//线性表的长度
}Array;
PList PolyRead();//读入一个多项式
Array CreatArray();//初始化一个线性表
PList IncreasingPower(PList p);//将一个降幂的多项式升幂排序
PList Add(PList p1,PList p2);//两个多项式相加
PList Sub(PList p1,PList p2);//两个多项式相减
PList Mult(PList p1,PList p2);//两个多项式相乘
void PrintPoly(PList p);//输出多项式
void FreeLink(PList p);//清空链表
PList MultTool(PList p1,PList p2);//乘法所需用到的一个工具,用来实现一个多项式中的某一项与另一个多项式做乘法运算
int main()
{
printf("欢迎来到一元多项式计算器\n");
printf("请输入您要进行的操作(如+、-、*):\n");
char ope;
scanf("%c",&ope);//输入操作符(如+、-、*)
PList p1,p2,pap,psp,pmp;
p1=PolyRead();//创建第一个多项式
p2=PolyRead();//创建第二个多项式
switch (ope){
case '+':
printf("两个多项式相加的结果是:\n");
pap=Add(p1,p2);
printf("降幂:");
PrintPoly(pap);
pap=IncreasingPower(pap);//将一个降幂的多项式升幂排序
printf("升幂:");
PrintPoly(pap);
break;
case '-':
printf("两个多项式相减的结果是:\n");
psp=Sub(p1,p2);
printf("降幂:");
PrintPoly(psp);
psp=IncreasingPower(psp);//将一个降幂的多项式升幂排序
printf("升幂:");
PrintPoly(psp);
break;
case '*
【数据结构-C语言】一元多项式计算器
最新推荐文章于 2023-01-17 08:08:11 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)