色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

C語言如何實現一元多項式的除法

吉茹定2年前22瀏覽0評論

C語言如何實現一元多項式的除法?

#define TURE 1

#define FALSE 0

#include<stdio.h>

#include<stdlib.h>

typedef struct

{

float coef;

int e;

}ElementType;

typedef struct node

{

ElementType data;

struct node *next;//這也是為什么要定義struct node 而非struct的原因

}Lnode,*LinkList;

int Head_CreatLinkList (LinkList &L,int n,ElementType a[])//頭插法建立鏈表

{

int i;

LinkList head,p;

L=(LinkList)malloc(sizeof(Lnode));

L->next=NULL;

head=L;

for(i=0;i<n;i++)

{

p=(LinkList)malloc(sizeof(Lnode));

p->next=NULL;

p->data.coef=a[i].coef;

p->data.e=a[i].e;

head->next=p;

head=p;

}

return TURE;

}

int GetElement(LinkList L)

{

int m;

m=L->data.e;

//printf("%d",m);

return m;

}

int Comp(int a,int b )

{

if(a>b)

return 1;

else if(a<b)

return -1;

else

return 0;

}

int Union_LinkList(LinkList &L1,LinkList &L2,LinkList &L3)

{

LinkList p1,p2,p3,flag1,flag2;//flag標記指針,用于刪除L2中節點

p1=L1->next;

p2=L2->next;

L3=p3=L1;//L3改變將導致L1的改變,即最終L3和L1相同

while(p1&&p2)

{

switch(Comp(GetElement( p1),GetElement( p2)))

{

case -1:

{

p3->next=p1;

p3=p1;

p1=p1->next;

break;

}

case 1:

{

p3->next=p2;

p3=p2;

p2=p2->next;

break;

}

case 0:

{

p1->data.coef=p1->data.coef+p2->data.coef;

if(p1->data.coef==0)

{

flag1=p1;

p1=p1->next;

free(flag1);

}

flag2=p2;

p2=p2->next;

free(flag2);

break;

}

}

}

p3->next=p1?p1:p2;

free(L2);

return TURE;

}

int Display_LinkList(LinkList L)

{

LinkList p;

p=L;

if(!p)

return FALSE;

while(p->next)

{

p=p->next;

printf("[%f%, %d]\t",p->data.coef,p->data.e);

}

printf("\n");

return TURE;

}

void main()

{

LinkList a,b,c;

ElementType a1[6]={{1,1},{2,7},{3,3},{4,4},{5,9},{1,10}};

ElementType a2[4]={{-1,1},{2,7},{3,8},{-5,9}};

Head_CreatLinkList (a,6,a1);

Head_CreatLinkList (b,4,a2);

Display_LinkList(a);

Display_LinkList(b);

Union_LinkList(a,b,c);

Display_LinkList(c);

}

java 鏈表 head,C語言如何實現一元多項式的除法