一元多项式的简单计算设计一个一元的简单计算器基本要求:1、输入并建立多项式2、输出多项式3、两个多箱式相加,建立并输出和

一元多项式的简单计算
设计一个一元的简单计算器
基本要求:1、输入并建立多项式
2、输出多项式
3、两个多箱式相加,建立并输出和多项式
实现提示:可选择带头节点的单项循环链表或单链表储存多项式,头结点可存放多项式的参数
PS:用数据结构C语言
crazybaby222 1年前 已收到1个回答 举报

zzkk爱kk 幼苗

共回答了25个问题采纳率:84% 举报

#include "stdio.h"
#include "alloc.h"
typedef struct node
{
int c,e;
struct node *next;
}pn;
/*创建链表*/
pn *create()
{
pn *p,*head;
int n;
printf("enter n:");
scanf("%d",&n);
head=malloc(sizeof(pn));
head->next=NULL;
p=head;
while(n)
{
p->next=malloc(sizeof(pn));
p=p->next;
printf("enter c e:");
scanf("%d%d",&(p->c),&(p->e));
n--;
}
p->next=NULL;
return head;
}
/*输出链表*/
void PL(pn *head)
{
pn *p;
p=head->next;
while(p)
{
printf("(%d,%d)",p->c,p->e);
p=p->next;
}
printf("n");
}
/*释放链表*/
void freefile(pn *head)
{
pn *p;
p=head;
while(p)
{
head=head->next;
free(p);
p=head;
}
}
/*两个链表相加*/
pn *add(pn *ha,pn *hb)
{
pn *hc,*head,*pa=ha->next,*pb=hb->next;
int x;
head=malloc(sizeof(pn));
head->next=NULL;
hc=head;
while(pa&&pb)
{
if(pa->e==pb->e)
{
x=pa->c+pb->c;
if(x!=0)
{
hc->next=malloc(sizeof(pn));
hc=hc->next;
hc->c=x;
hc->e=pa->e;
}
pa=pa->next;
pb=pb->next;
}
else if(pa->ee)
{
hc->next=malloc(sizeof(pn));
hc=hc->next;
hc->c=pa->c;
hc->e=pa->e;
pa=pa->next;
}
else
{
hc->next=malloc(sizeof(pn));
hc=hc->next;
hc->c=pb->c;
hc->e=pb->e;
pb=pb->next;
}
}
if(pa==NULL)
{
while(pb)
{
hc->next=malloc(sizeof(pn));
hc=hc->next;
hc->c=pb->c;
hc->e=pb->e;
pb=pb->next;
}
}
if(pb==NULL)
{
while(pa)
{
hc->next=malloc(sizeof(pn));
hc=hc->next;
hc->c=pa->c;
hc->e=pa->e;
pa=pa->next;
}
hc->next=NULL;
return head;
}
}
main()
{
pn *ha,*hb,*hc,*hd;
clrscr();
ha=create();
PL(ha);
hb=create();
PL(hb);
hc=add(ha,hb);
PL(hc);
freefile(ha);
freefile(hb);
freefile(hc);
}

1年前

8
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.019 s. - webmaster@yulucn.com