C語言單鏈表實現多項式的加法 減法 乘法

2021-08-21 18:34:33 字數 1112 閱讀 6449

c語言採用單鏈表儲存結構實現多項式的加法、減法、乘法的**實現

#include #include typedef struct polynomialpolynomial;

// 建立多項式,m為多項式的項數,當m為0時,函式只初始化頭結點

void createpolyn(polynomial **p, int m)

if(cp->next && temp->expn == cp->next->expn)

temp->next = cp->next;

cp->next = temp;

}}// 列印多項式

void printpolyn(polynomial *p)

}// 多項式加法

void addpolyn(polynomial **pa, polynomial **pb) else if(cpa->expn > cpb->expn) else else }}

if(cpa)

p->next = cpa;

else

p->next = cpb;

free(*pb);

}// 多項式減法

void subtractpolyn(polynomial **pa, polynomial **pb) else if(cpa->expn > cpb->expn) else else }}

// 注意:cpa和cpb不是互斥關係,需分開兩個if分支,但最多只有乙個分支執行,可能同時不執行

if(cpa)

p->next = cpa;

if(cpb)

}free(*pb);

}//將pb中的多項式複製到pa中

void copypolyn(polynomial **pa, polynomial *pb)

}//pa為多項式。pb為單項式,與pa中的每一項相乘,結果儲存到pa中

void multiplyoperate(polynomial *pa, polynomial *pb)

}// 多項式乘法

void multiplypolyn(polynomial **pa, polynomial **pb)

}int main()

單鏈表實現有序多項式加法

原理講解 使用鍊錶表示一元多項式 設多項式pn x a0 a1x a2x2 an xn其中ai i 0,1,2,n 是x的i次冪 的係數。在計算機中可使用乙個結點存放多項式的一項。如果採用順序儲存結構來儲存此線性表,由於多項式中可能有多項的係數為0,順序儲存就會浪費大量儲存空間。故應採用單鏈表來儲存...

單鏈表實現多項式的儲存和加法

採用單向鍊錶實現一元多項式的儲存並實現兩個多項式相加並輸出結果。演算法分析 不採用申請新節點的方法,要充分利用老節點。實現如下 include include include using namespace std typedef struct node jd,linklist linklist c...

C語言 多項式加法

c語言 多項式加法 乙個多項式可以表達為x的各次冪與係數乘積的和,比如 2x6 3x5 12x3 6x 20 現在,你的程式要讀入兩個多項式,然後輸出這兩個多項式的和,也就是把對應的冪上的係數相加然後輸出。程式要處理的冪最大為100。總共要輸入兩個多項式,每個多項式的輸入格式如下 每行輸入兩個數字,...