一元多項方程式的實現主要在於加減法。其主要有係數和指數,如果用順序表來表示,最大指數如果很大比如1000,但是中間又有很多指數沒有,所以會浪費很多空間,所以用鍊錶來實現雖然麻煩但是節約空間,下面來看演算法的實現
一:這是節點的結構體
#include
using namespace std;
struct item
;item::item()
二:list_cometrue.h為實現方法的類
#include"link_list.h"
class list
;void list::init()
list::list()
list::~list()
void list::create(double co,int ex,int p)//建立鍊錶
}void list::out()//輸出鍊錶
coutnext)
count++;
return count;
}void list::getelem(int position,item *p)//取指定位置的節點複製給p }
}list list::operator+(const list &p1)//運算子過載實現加法,
else if(la->expnexpn)else
}if(la==null)
}else
}return list_link;
}這個難點在於最後乙個一元多項式加法的實現,這裡用了運算子的過載,
其中實現時應注意判斷條件最後按照指數的從大到小的順序來輸出
三:main函式
#include"list_cometrue.h"
void main()
;int ex[5]=;
int num=sizeof(co)/sizeof(co[1]);
p.create(co,ex,num);
p.out();
double co1=;
int ex1=;
int num1=sizeof(co1)/sizeof(co1[1]);
p1.create(co1,ex1,num1);/建立函式
p1.out();輸出函式
p2=p+p1; //過載運算子 書實現鍊錶想加
p2.out();}}
同理減法也是這樣實現,只是要注意判斷條件
用鍊錶實現的一元多項式演算法
include include include stdio.h typedef struct polynomial typedef struct lnode lnode,link void createlink link l,int n void printlist link l void addp...
一元多項式加法鍊錶實現
使用鍊錶實現一元多項式加法 並使用已有鍊錶返回運算結果 一元多項式求和 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...