用鍊錶實現多項式的加減(鍊錶寫入資料用頭插法)

2021-06-20 23:15:58 字數 994 閱讀 2438

今天學習了用鍊錶實現多項式的加減運算 

實現的思路是這樣的

(1)觀察兩個多項式  ,找出最高項的係數 ,這是為了確定在鍊錶中確定存放多少個資料的關鍵。比如多項式最高項的係數為4,那麼這個鍊錶中就要存放五個資料。

(2)觀察其他項的係數,如果多項式x^3的係數為零,那麼在鍊錶中的該節點就存放零。如果該多項式有常數,鍊錶的最後就存放該常數。

(3)採用頭插法將多項式的係數存放在鍊錶中。依次存放最高項係數 ,直至改多項式的常數項。

(4)將連個鍊錶對應位置的係數依次相加。即可求出相加後的多項式。

具體的實現**如下所示(僅供參考)

#include #include typedef struct node

node;

typedef struct nodectrl

nodectrl;

nodectrl *createctrl()

nc->head = null;

nc->num = 0;

return nc;

}int adddata(nodectrl *nc,int data)

int deletedata(nodectrl *nc, int data)

else

p = q;

q = q->next;}}

if(success)

nc->num--;

return success;

}void display(nodectrl *nc)

}}void display2(nodectrl *nc1,nodectrl *nc2, nodectrl * nc3)

} for( i=4;i>=0;i--)

adddata(nc3,a[i]);

}void freenodectrl(nodectrl *nc)

} free(nc);

}int main()

多項式的鍊錶實現

include include typedef struct pnode pnode,polylist void initpl polylist pl pl coe 0 pl exp 0 pl next null void insertafter polylist pl,polylist pd vo...

多項式的鍊錶實現

實現多項式的輸入 輸出 加法 求導 求值。using namespace std include include include include stdio.h using namespace std struct linknode 多項式結點 class poly 多項式類 poly poly p...

鍊錶的多項式加法鍊錶的多項式加法

老師給的模板看的我不要不要的,真心難看,看了很久才把過載加法搞定了。include using namespace std include 定義結點類 用於表示多項式的一項 class node node int nexp,int ncoef private int exp 指數 int coef ...