数据结构一元多项式的代数运算

来源:百度知道 编辑:UC知道 时间:2024/07/04 08:57:40
1.课程设计目的:
本设计的主要目的是设计一个一元多项式简单计算器。熟悉掌握一元多项式在链式存储结构上的实现,能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输出。体会链式存储结构的优缺点和适用性。
2. 实验内容:
(1)输入并建立多项式;
(2)输出多项式,输出形式为整数序列:n,a,e1,c2,e2…,cn,en,其中n是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排列;
(3)多项式a和b相加,建立多项式a+b;
(4)多项式a和b相减,建立多项式a-b。

//多项式相加(用单链表实现,用尾插法建表,用墨守成连线法求新的多项式)
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode //单链表的结构
{
int coef,exp;
struct LNode *next;
}LNode,*LinkList;

void InitList(LinkList &L) //单链表的初始化,数据输入
{
LinkList p,s;
L=(LinkList)malloc(sizeof(LNode));
if(!L)
exit(0);
L->next=NULL;
p=L;
do //用尾插法进行输入
{
s=(LinkList)malloc(sizeof(LNode));
scanf("%d%d",&s->coef,&s->exp);
p->next=s; //此处的连线有先后关系,因为如果先写第二个操作:L->next=s,
//则是先将第一个操作中的L->next变为了s,从而使赋值发生错误
if(s->next)
p=s;
}while(s->exp);
s->next=NULL;
}

int compare(int x,int y)
{
int flag;
if(x>y)
flag=1;
if(x==y)
flag=0;
if(x<y)
flag=-1;
return flag;
}