数据结构一元多项式的代数运算1.课程设计目的:本设计的主要目的是设计一个一元多项式简单计算器.熟悉掌

发布时间:2021-02-19 18:17:30

数据结构一元多项式的代数运算1.课程设计目的:本设计的主要目的是设计一个一元多项式简单计算器.熟悉掌握一元多项式在链式存储结构上的实现,能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输出.体会链式存储结构的优缺点和适用性.2.实验内容:(1)输入并建立多项式;(2)输出多项式,输出形式为整数序列:n,a,e1,c2,e2…,cn,en,其中n是多项式的项数,ci,e

网友回答

//多项式相加(用单链表实现,用尾插法建表,用墨守成连线法求新的多项式)
#include
#include
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 pare(int x,int y)
{int flag;
if(x>y)flag=1;
if(x==y)
flag=0;
if(xnext=NULL;
LinkList pa,pb,pc;
pa=La->next;pb=Lb->next;Lc=pc=La;
while(pa&&pb)
{n=pare(pa->exp,pb->exp);switch(n)
{case 1:
pc->next=pa;
pc=pa;
pa=pa->next;break;
case -1:
pc->next=pb;
pc=pb;
pb=pb->next;break;
case 0:
pc->next=pa;
pc=pa;
pc->coef=pa->coef+pb->coef;pa=pa->next;pb=pb->next;break;
}}pc->next=pa?pa:pb; //是其中一个线性表已结束的情况free(Lb);}void print(LinkList &L){LinkList p;p=L->next;while(p){printf(+%d*x^%d,p->coef,p->exp);p=p->next;}printf(\n);}void main(){LinkList L1,L2,L3;printf(Please input L1(coef and exp):\n);InitList(L1);printf(L1=);print(L1);printf(Please input L2(coef and exp):\n);InitList(L2);printf(L2=); print(L2);Add(L1,L2,L3);printf(The new list is:\n);print(L3);printf(\n);}
以上问题属网友观点,不代表本站立场,仅供参考!