c 用鍊錶實現一元多項方程式

2021-07-02 15:22:02 字數 1184 閱讀 9825

一元多項方程式的實現主要在於加減法。其主要有係數和指數,如果用順序表來表示,最大指數如果很大比如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...