鍊錶實現多項式相乘

2021-09-26 20:46:00 字數 1386 閱讀 9585

參考文章:

自己敲了一遍,先mark一下,以後理解可能會更深一點。

亮點在於對第二個多項式進行了逆反。

#include#includetypedef struct node

listnode;

listnode *createlist(int n);//建立鍊錶

int printlist(listnode* head);//列印鍊錶

int inverselist(listnode* head);//逆反鍊錶

listnode* multi(listnode* head_a, listnode* head_b);//鍊錶相乘

int main()

listnode *createlist(int n)

head->next = null;

int i = 0;

for (i = 0; i < n; i++)

printf("請輸入第%d個係數和指數:", i + 1);

scanf("%f %d", &coe, &exp);

p->coe = coe;

p->exp = exp;

p->next = null;

pre->next = p;

pre = p;//插入結點

} return head;

}int inverselist(listnode *head)

return 0;

}int printlist(listnode* head)

printf("%1.1f*x^%d\n", p->coe, p->exp);

return 0;

}listnode* multi(listnode* head_a, listnode* head_b)

head_c->coe = 0.0;

head_c->exp = 0;

head_c->next = null;

pc = head_c;

inverselist(head_b);//鍊錶b逆反

float coe = 0.0;//係數和

int k = 0;

for (k = exp_max; k >= 0; k--)

else

}if (coe != 0.0)//有係數,則將此結點插入鍊錶c中

newnode->coe = coe;

newnode->exp = k;

newnode->next = null;

pc->next = newnode;

pc = newnode;

coe = 0.0;

} }inverselist(head_b);

return head_c;

}

單向鍊錶 練習3 7 多項式相乘

3.7 編寫乙個函式將兩個多項式相乘,用乙個鍊錶實現。你必須保證輸出的多項式按冪次排列並且最多有一項為任意冪。多項式相乘 position multiply2pol position h1,position h2 排序合併 mpsort h,size return h 氣泡排序多項式,按照項的次數從...

多項式相乘求組合數RC(n,r) 鍊錶實現

設集合s n1 n2 nt n,從s中任取r個,求其組合數rc n,r 設多項式 則rc n,r 就是多項式中xr的係數,即 rc n,r ar。根據上述方法,程式設計實現 求任意的從s中任取r個的組合數rc n,r 且輸出ai i 1,2.r 解決思路 1.每個多項式用乙個鍊錶表示。多項式的係數和...

鍊錶實現多項式相加

均已除錯通過,編譯器為dev c 多項式相加程式,用鍊錶實現 係數 coefficient 指數exponent 多項式 multinomial include typedef struct lnode lnode,linklist 建立兩個鍊錶 int main while pr1 next pr...