设为首页 加入收藏

TOP

c语言实现一元多项式(二)
2013-07-22 17:54:06 来源: 作者: 【 】 浏览:227
Tags:语言 实现 一元 多项

 

  if (p1->expn == p2->expn) {

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

  if (p1->coef == 0) {

  t = p1->next;

  free(p1);

  p1 = t;

  } else {

  p->next = p1;

  p1 = p1->next;

  p = p->next;

  }

  t = p2->next;

  free(p2);

  p2 = t;

  } else {

  t = p1->expn > p2->expn p1 : p2;

  p->next = t;

  p = t;

  t = t->next;

  p1->expn > p2->expn p1 : p2 = t;

  }

  }

  p->next = 0;

  if(p2){

  p->next = p2;

  }

  free(b);

  b = 0;

  return OK;

  }

  Status SubPoly(Poly *a, Poly *b) {

  CHECK(*a&&*b&&*a!=*b);

  Poly p = (*b)->next;

  while(p){

  p->coef = -p->coef;

  p = p->next;

  }

  return AddPoly(a,b);

  }

  Status reverse(Poly head){

  CHECK(head);

  Poly e = 0;

  Poly p = head->next;

  Poly t;

  while(p){

  t = p->next;

  p->next = e;

  e = p;

  p = t;

  }

  head->next = e;

  return OK;

  }

  Status multiPoly(Poly *a,Poly *b){

  CHECK(*a&&*b);

  Poly head,p1,p2;

  CHECK(makeNode(0,0,&head));

  p1 = (*a)->next;

  while(p1){

  p2 = (*b)->next;

  while(p2){

  AddNodePoly(&head,p1->coef*p2->coef,p1->expn+p2->expn);

  print(head);

  p2 = p2->next;

  }

  p1 = p1->next;

  }

  *a = head;

  return OK;

  }

  int main() {

  freopen("c:/in.log", "r", stdin);

  Poly a = 0, b = 0;

  if (createPoly(&a)) {

  print(a);

  }

  if (createPoly(&b)) {

  print(b);

  }

  if (SubPoly(&a, &b)) {

  print(a);

  }

  destoryPoly(&a);

  return 0;

  }

      

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇找距离最近油价最低的加油站 下一篇C语言连接mysql数据库

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: