⑴ 输入并建立多项式;
⑵ 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。所有输出都按指数降序排列。
⑶ 多项式A和B相加,建立多项式A+B,输出相加的多项式;
⑷ 多项式A和B相减,建立多项式A-B,输出相减的多项式;
⑸ 多项式A和B相乘,建立多项式A×B,输出相乘的多项式;
⑹ 设计一个菜单,至少具有上述操作要求的基本功能。
(7) 通过文件输入、输出多项式
链式存储表示的类型定义
typedef struct ploy
{
float coef; /*系数部分*/
int expn; /*指数部分*/
struct ploy *next;
}PLoy;
初始化链表,生成只有头结点的空链表
PLoy *init_Ploy_LinkList(void)
{
PLoy *head;
head = (PLoy *)malloc(sizeof(PLoy));
head->coef = 0.0;
head->expn = 0;
head->next = NULL;
return head;
}
将项(co,ex)以k的方式插入到以L为头指针的一元多项式链表中
插入后的一元多项式链表是按指数从大到小排列的
void add_ploy_item(PLoy *L,float co,int ex,int k)
{
PLoy *pre = L, *p = L->next, *q;
float x;
while (p != NULL && p->expn > ex)
{
pre = p;
p = p->next;
}
if (p == NULL)//链表已经到最后,开辟新结点,直接插入到最后
{
q = (PLoy *)malloc(sizeof(PLoy));
q->coef = k*co;
q->expn = ex;
q->next = p;
pre->next = q;
}
else if (p->expn == ex)//有同类项
{
x = p->coef + k * co;
if (fabs(x) <=