一元多项式的实现(C语言)求程序大神帮忙解决一下数据结构的练习.要求:1)一元多项式的输入,显示输出(1)提示输入多项式系数和指数,输入之后把多项式按照常用形式显示出来(2)计算结
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 10:25:57
一元多项式的实现(C语言)求程序大神帮忙解决一下数据结构的练习.要求:1)一元多项式的输入,显示输出(1)提示输入多项式系数和指数,输入之后把多项式按照常用形式显示出来(2)计算结
一元多项式的实现(C语言)
求程序大神帮忙解决一下数据结构的练习.要求:1)一元多项式的输入,显示输出
(1)提示输入多项式系数和指数,输入之后把多项式按照常用形式显示出来
(2)计算结果显示
2)一元多项式加法,减法,乘法实现.
一元多项式的实现(C语言)求程序大神帮忙解决一下数据结构的练习.要求:1)一元多项式的输入,显示输出(1)提示输入多项式系数和指数,输入之后把多项式按照常用形式显示出来(2)计算结
#define TURE 1
#define FALSE 0
#include
#include
typedef struct
{
\x09float coef;
\x09int e;
}ElementType;
typedef struct node
{
\x09ElementType data;
\x09struct node *next;//这也是为什么要定义struct node 而非struct的原因
}Lnode,*LinkList;
int Head_CreatLinkList (LinkList &L,int n,ElementType a[])//头插法建立链表
{
\x09int i;
\x09LinkList head,p;
\x09L=(LinkList)malloc(sizeof(Lnode));
\x09L->next=NULL;
\x09head=L;
\x09for(i=0;inext=NULL;
\x09\x09p->data.coef=a[i].coef;
\x09\x09p->data.e=a[i].e;
\x09\x09head->next=p;
\x09\x09head=p;
\x09}
\x09return TURE;
}
int GetElement(LinkList L)
{
\x09int m;
\x09m=L->data.e;
\x09//printf("%d",m);
\x09return m;
}
int Comp(int a,int b )
{
\x09if(a>b)
\x09\x09return 1;
\x09else if(anext;
\x09p2=L2->next;
L3=p3=L1;//L3改变将导致L1的改变,即最终L3和L1相同
\x09while(p1&&p2)
\x09{\x09
\x09\x09switch(Comp(GetElement( p1),GetElement( p2)))
\x09\x09{
\x09\x09\x09case -1:
\x09\x09\x09{
\x09\x09\x09\x09p3->next=p1;
\x09\x09\x09\x09p3=p1;
\x09\x09\x09\x09p1=p1->next;
\x09\x09\x09\x09break;
\x09\x09\x09}
\x09\x09\x09case 1:
\x09\x09\x09{
\x09\x09\x09\x09p3->next=p2;
\x09\x09\x09\x09p3=p2;
\x09\x09\x09\x09p2=p2->next;
\x09\x09\x09\x09break;
\x09\x09\x09}
\x09\x09\x09case 0:
\x09\x09\x09{
\x09\x09\x09\x09p1->data.coef=p1->data.coef+p2->data.coef;
\x09\x09\x09\x09if(p1->data.coef==0)
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09flag1=p1;
\x09\x09\x09\x09\x09p1=p1->next;
\x09\x09\x09\x09\x09free(flag1);
\x09\x09\x09\x09}
\x09\x09\x09\x09flag2=p2;
\x09\x09\x09\x09p2=p2->next;
\x09\x09\x09\x09free(flag2);
\x09\x09\x09\x09break;
\x09\x09\x09}
\x09\x09}
\x09}
\x09p3->next=p1?p1:p2;
\x09free(L2);
\x09return TURE;
}
int Display_LinkList(LinkList L)
{
\x09LinkList p;
\x09p=L;
\x09if(!p)
\x09\x09return FALSE;
\x09while(p->next)
\x09{
\x09\x09p=p->next;
\x09\x09printf("[%f%, %d]\t",p->data.coef,p->data.e);
\x09}
\x09printf("\n");
\x09return TURE;
}\x09
void main()
{
\x09 LinkList a,b,c;
\x09 ElementType a1[6]={{1,1},{2,7},{3,3},{4,4},{5,9},{1,10}};
\x09 ElementType a2[4]={{-1,1},{2,7},{3,8},{-5,9}};
\x09 Head_CreatLinkList (a,6,a1);
\x09 Head_CreatLinkList (b,4,a2);
\x09
\x09Display_LinkList(a);
\x09Display_LinkList(b);
\x09Union_LinkList(a,b,c);
\x09Display_LinkList(c);
\x09
}
这是自己以前写的一个多项式加法的程序,现在也没检查了,希望你自己好好调试一下,至于减法和除法,只要加一点吧.希望对你有帮助