一元多项式的表示及相加
2009-08-30 21:24
399 查看
#include<stdio.h> #define ERROR -1; typedef struct NODE { int xishu; int zhishu; struct NODE *next; }NODE,*LNODE; int main() { LNODE la=(LNODE)malloc(sizeof(NODE)); LNODE lb=(LNODE)malloc(sizeof(NODE)); LNODE p,q,temp; LNODE ta,tb; int i,j,t; int n; int count; int sum; la->next=NULL; lb->next=NULL; ta=la; tb=lb; printf("please input the A number:"); scanf("%d",&n); for(i=0;i<n;i++) { p=(LNODE)malloc(sizeof(NODE)); if(!p) return ERROR; scanf("%d %d",&(p->xishu),&(p->zhishu)); p->next=NULL; ta->next=p; ta=p; } printf("please input the B number:"); scanf("%d",&n); for(i=0;i<n;i++) { p=(LNODE)malloc(sizeof(NODE)); if(!p) return ERROR; scanf("%d %d",&(p->xishu),&(p->zhishu)); p->next=NULL; tb->next=p; tb=p; } p=la; q=lb; while(q->next!=NULL&&p->next!=NULL) { if((p->next->zhishu)>(q->next->zhishu)) { temp=q->next; q->next=q->next->next; temp->next=p->next; p->next=temp; p=temp; } else { if(p->next->zhishu==q->next->zhishu) { sum=p->next->xishu+q->next->xishu; if(!sum) //如果和为零 { temp=p->next; p->next=temp->next; free(temp); temp=q->next; q->next=temp->next; free(temp); } else { p->next->xishu=sum; p=p->next; q=q->next; } } else { p=p->next; } } } if(NULL==p->next) { p->next=q->next; } p=la->next; while(p) { printf("(%d %d)/n",p->xishu,p->zhishu); p=p->next; } return 0; }
相关文章推荐
- Polynomial 一元多项式的表示及相加 (线性链表实现 严蔚敏版)
- 一元多项式的表示及相加(抽象数据类型Polynomial的实现)
- 数据结构学习笔记 --- 线性表 (一元多项式的表示及相加)
- 2007.08.25一元多项式的表示及相加
- 【无浪】一元多项式的表示及相加
- 数据结构 一元多项式的表示及相加
- pat(A) 1002. A+B for Polynomials (一元多项式的表示及相加)
- 数据结构学习之路-第二章:一元多项式的表示及相加
- 一元多项式的表示及相加
- 一元多项式的表示及相加
- 数据结构(11)线性表之一元多项式表示及相加
- 第二章(6).一元多项式的表示及相加
- 一元多项式的表示及相加(抽象数据类型Polynomial的实现)
- 一元多项式表示和相加
- 【重学数据结构】一元多项式的表示及相加
- 一元多项式的表示和相加
- 一元多项式的表示及相加 【链表的应用】
- 算法:一元多项式的表示及相加(链表实现)-数据结构(4)
- 一元N次多项式的表示及相加
- 一元多项式表示和相加