多項式相加有很多種實現方法。
不怕浪費空間的可以用陣列,陣列下標當作指數;
結構可以同時儲存指數和係數,但要開闢新的空間存放比較後相加的結果;
鍊錶可以和結構一樣使用,開闢新鍊錶,不斷釋放舊的鍊錶;
這裡介紹一種直接利用兩個鍊錶的結點,以乙個鍊錶為基準,將另外乙個鍊錶的結點選擇性加入,同時釋放係數為0沒用的結點。
#define error 0
#define ok 1
typedef struct node
node;
typedef node* pnode;
int insertline(pnode trvp, int n, int coef,int exp)//在第n位置插入乙個結點
if (!trvp || i > n - 1) return error;
node* insertnode = (node*)malloc(sizeof(node));
insertnode->coef = coef;
insertnode->exp = exp;
insertnode->pnext = trvp->pnext;
trvp->pnext = insertnode;
}//以第乙個鍊錶為基準,將第二個鍊錶選擇性插入,這樣不用開闢新的空間,
void add_poly(pnode hnode1, pnode hnode2)
else//係數和為0,釋放掉兩個空間
}else if(q1->expexp)
else//q2結點併入q1
}if (q2)//若q2有餘,直接掛到ans末尾 }
int main()
多項式相加
include include include typedef struct polyn pol 建立有序多項式 pol creatpolyn else if cnew expn clast expn else cnew pol malloc sizeof pol scanf d d cnew co...
多項式相加
include include typedef struct node 多項式資料型別的定義 polynode polynode createpoly 建立鍊錶 r next null return l void addpoly polynode pa,polynode pb 兩個多項式相加 els...
多項式相加
一.題目描述 輸入兩個多項式,按照指數遞增輸入 輸出相加和。二.題目分析 在書中第二章節中出現了多項式相加的演算法,使用鍊錶實現的,在此簡單使用結構體構造多項式的項。三.include define n 10 typedef struct item int m,n,k 0 item a n b n ...