利用單鏈表實現多項式的加法和乘法運算

2021-09-02 16:36:06 字數 1394 閱讀 5927

#include #include typedef struct coeexpstruct

coeexp;

typedef struct polynomial

polynode;

polynode* readpolynomial(coeexp ce,int size)

pheadnode = pheadnode->pnext; //修改頭指標,指向首節點

return pheadnode;

}//比較2個多項式係數高低,係數相等返回0,p1>p2,返回1,p1exp2)

return 1;

else if(exp1 < exp2)

return -1;

return 0;

}//在末尾新增元素

}//多項式相加

polynode* addpolynomial(polynode *p1,polynode *p2)

}//將未處理的項新增結果多項式後面

while (p1)

while (p2)

prear = null; //令尾節點null,鍊錶結束

presult = presult->pnext;

return presult;

}//2個多項式相乘

polynode *multipolynomial(polynode*p1,polynode*p2)

t1 = t1->pnext;

//雙重迴圈,p1的第二項與p2的每一項相乘,並按照指數遞減的順序插入上次多項式後面

while (t1)

//係數相等則合併同類項

if(prear->pnext && prear->pnext->ce.exp == exp)

else

}else

t2 = t2->pnext;

}t1 = t1->pnext;

}t2 = presult;

presult = presult->pnext;

free(t2);

return presult;

}int main()

,}; coeexp ce2[2] = ,};

polynode*pnode1 = readpolynomial(ce1,2);

polynode*pnode2 = readpolynomial(ce2,2);

//polynode*pnode3 = addpolynomial(pnode1,pnode2);

polynode*pnode4 = multipolynomial(pnode1,pnode2);

while (pnode4)

printf("over \n");

return 0;

}

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

原理講解 使用鍊錶表示一元多項式 設多項式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...

Java 用單鏈表實現多項式加減乘

用單鏈表來實現多項式的加減乘,除就不做了,如下 public class polynomial else if first null else else if current.next null current current.next public public string tostring r...