摘要:為了計算簡單,將多項式按指數增冪排列放在鍊錶中,第乙個節點的指數就是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...