#include
#include
#include"stdio.h"
typedef struct
polynomial;
typedef struct lnode
lnode,*link;
void createlink(link &l,int n);
void printlist(link l);
void addpolyn(link &pc,link pa,link pb);
void substractpolyn(link &pc,link pa,link pb);
void copylink(link &pc,link pa);
void mulpolyn(link &pc,link pa,link pb);
int locatelink(link pa,link e);
void destroylink(link &l);
int comparenum(int i);
void destroylink(link &l)
delete l;
l=null;
}void createlink(link &l,int n)
link p,newp;
//int k=0;
l=new lnode;
l->next=null;
(l->data).expn=-1;//建立頭結點
p=l;
/*newp=new lnode;
cout<<"請輸入第1項的係數和指數:"<>(newp->data).coef;
cout<<"指數:";
cin>>(newp->data).expn;
p->next=newp;
newp->next=null;*/
for(int i=1;i<=n;i++)
while((p->next!=null)&&((p->next->data).expn<(newp->data).expn))
if(!locatelink( l, newp))
else
/*輸出鍊錶*/
void printlist(link l)
if((p->data).coef<0)
p=p->next;
while(p!=null/*&&(p->data).coef!=0*/)
if((p->data).coef<0)
p=p->next;}}
coutvoid copylink(link &pc,link pa)
}/*將兩個一元多項式相加*/
void addpolyn(link &pc,link pa,link pb)
else if(p1->data.expn>p2->data.expn)
else
else
}if(p1!=null)
if(p2!=null)
/*將兩個多項式相減*/
void substractpolyn(link &pc,link pa,link pb)
addpolyn(pc,pa,pt);
destroylink(pt);
}//清屏函式
void clear()
addpolyn(pd,pc,p);
copylink(pc,pd);
p1=p1->next;
p2=pb->next;
destroylink(p);
destroylink(pd);}/*
link p,q,r,pd,pe;
pc=new lnode;
pc->next=null;
pe=new lnode;
pe->next=null;
p=pa->next;
q=pb->next;
while(p!=null)
destroylink(pe);
p=p->next;
q=pb->next;
}*/}
//選單函式
void menuprint()
void main()
createlink(lb,n);
clear();
break;
case 2:
if(la==null||lb==null)
addpolyn(l,la,lb);
cout<<"相加的兩個一元多項式為:"
printlist(lb);
cout<<"相加後的結果為:"
clear();
destroylink(l);
break;
case 3:
if(la==null||lb==null)
substractpolyn(l,la,lb);
cout<<"相減的兩個一元多項式為:"
printlist(lb);
cout<<"相減後的結果為:"
clear();
destroylink(l);
break;
case 4:
if(la==null||lb==null)
mulpolyn(l,la,lb);
cout<<"相乘的兩個一元多項式為:"
printlist(lb);
cout<<"相乘後的結果為:"
destroylink(l);
clear();
break;
case 5:
if(la==null||lb==null)
cout<<"第乙個一元多項式為:"
cout<<"第二個一元多項式為:"
clear();
break;
case 6:
if(la&&lb)
else
break;
case 7:
exit(0);
default:
cout<<"您的輸入有誤,請重新選擇操作……"
}
一元多項式加法鍊錶實現
使用鍊錶實現一元多項式加法 並使用已有鍊錶返回運算結果 一元多項式求和 void sumlist slist a,slist b else output m output n t m next while m next null n next null else if m next exp n ne...
鍊錶實現一元多項式相加
c 鍊錶實現一元多項式相加 如下 輸入多項式按次數從高到低排列 include include using namespace std intmain 定義節點型別,coe表示x前的係數,order表示x的次數 int coe,order int i int nodenuma 多項式a的項數 pri...
用鍊錶實現一元稀疏多項式的相加
由於一元多項式包含係數項和指數項,其係數為float型,指數項為int型,往往將其兩項組合成為乙個結構元素型別,將多項式看成是乙個有序表,則多項式定義中的各個操作均可利用有序表操作來完成。建立多項式演算法 操作結果 輸入m項的係數和指數,建立一元多項式p 銷毀多項式演算法 初始條件 一元多項式p已存...