鍊錶在計算多項式上的應用(1)

2021-07-04 23:10:18 字數 998 閱讀 2250

摘要:為了計算簡單,將多項式按指數增冪排列放在鍊錶中,第乙個節點的指數就是1,第n個節點的指數就是n,例如(1 0 3 0 5 6 0 8)。

(1)加法,在以前printlist函式(見鍊錶的基本操作)上稍作修改,p中節點的指數也代表位置。係數相加,指數不變,在add函式中呼叫兩次printlist函式即可實現將list l,p相加。

(2)乘法:將乘法轉化為多次加法,用乙個多項式的每一項乘上第二個多項式,然後用printlist函式將得到的多項式相加,最後可以實現乘法.

思考:當兩個鍊錶的長度相差很大時,應該怎樣確定他們相乘的順序提高效率?

#include

"stdafx.h"

#include

"stdlib.h"

#include

"malloc.h"

#include

"time.h"

typedef struct node *ptrtonode;

struct node

;typedef ptrtonode polynomial;

typedef ptrtonode list;

void printlist(list l, list p)//只能輸入順序增長的p;

while(p!=

null

&&l!=

null)

else

} l = l->next;

}}void add(polynomial l,polynomial s,polynomial polysum)

polynomial multiply(polynomial l,polynomial s)

while(add1->next!=

null)

//將temp按序插入

printlist(result,temp);

}return (result);

}

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

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

C 鍊錶應用 多項式相加

include using namespace std class poly class add2poly add2poly add2poly void add2poly addpoly read second poly cout n nsecond polynomial n end null fo...

鍊錶應用 多項式加法 乘法

鍊錶學習 多項式應用 通過引入insertpoly函式來完成加法乘法操作 以及類似功能的creat 函式,使我的多項式按照指數下降的方式插入節點 而不需要在輸入時人為的控制 include using namespace std 多項式adt鍊錶實現的型別宣告 typedef struct node...