C語言單鏈表實現(xiàn)多項式相加
來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次
本文實例為大家分享了C語言單鏈表實現(xiàn)多項式相加的具體代碼,供大家參考,具體內(nèi)容如下
//多項式的相加和相乘
#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)//兼容scanf
typedef struct node {
int coef;
int expon;
struct node* link;
}Polynode,*Polynomial;
Polynomial InsertPolyLinklist(Polynomial in,Polynomial Pread) {
Pread->link = in;
Pread = in;
in->link = NULL;
return Pread;
}
Polynomial ReadPoly(void) {
Polynomial Pread = (Polynomial)malloc(sizeof(Polynode));
Pread->link = NULL;
Polynomial H = Pread;
int N;
scanf("%d ", &N);
while (N--) {
Polynomial p = (Polynomial)malloc(sizeof(Polynode));
scanf("%d %d", &p->coef, &p->expon);
Pread= InsertPolyLinklist(p,Pread);
}
Polynomial F;
F = H->link;
free(H);
return F;
}
void PrintPoly(Polynomial F) {
while(F != NULL) {
printf("%d %d ", F->coef, F->expon);
F = F->link;
}
printf("\n");
}
Polynomial Add(Polynomial p1, Polynomial p2) {
Polynomial t1=p1,t2=p2;
Polynomial p=(Polynomial)malloc(sizeof(Polynode));
p->link = NULL;
Polynomial q = p;
Polynomial read;
while (t1&&t2) {
if (t1->expon == t2->expon) {
if (t1->coef + t2->coef) {
t1->coef = t1->coef + t2->coef;
t1->expon = t1->expon;
read = t1;
q->link = read;
q = read;
t1 = t1->link;
t2 = t2->link;
}
}
else {
if (t1->expon > t2->expon){
read = t1;
q->link = read;
q = read;
t1 = t1->link;
}
else {
if (t1->expon < t2->expon) {
read = t2;
q->link = read;
q = read;
t2 = t2->link;
}
}
}
}
if (t1) {
q->link = t1;
}
if (t2) {
q->link = t2;
}
Polynomial F = p->link;
free(p);
return F;
}
int main(void) {
Polynomial p1, p2, pp, ps;
p1 = ReadPoly();
PrintPoly(p1);
p2 = ReadPoly();
PrintPoly(p2);
pp = Add(p1, p2);
PrintPoly(pp);
// ps = Mult(p1, p2);
// PrintPoly(ps);
return 0;
}
參考
MOOC 浙大數(shù)據(jù)結構
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持我們。
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對數(shù)怎么表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機閱讀
- 01-10delphi制作wav文件的方法
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10C#中split用法實例總結
- 01-10SublimeText編譯C開發(fā)環(huán)境設置


