問題描述:用單鏈表儲存一元多項式,並實現兩個多項式的加法。
輸入描述:若干資料。
程式輸出:多項式a,多項式b,有序多項式a,b,相加後的多項式。
#include #include #define max 20 //多項式最多項數
typedef struct //定義存放多項式的陣列型別
polyarray;
typedef struct pnode //定義單鏈表結點型別,儲存多項式中的一項,鍊錶構成多項式
polynode;
void disppoly(polynode *l) //輸出多項式
printf("\n");
}
void destroylist(polynode *&l) //銷毀單鏈表
free(p);
}
void createlistr(polynode *&l, polyarray a, int n) //尾插法建表
r->next=null; //終端結點next域置為null
}
void sort(polynode *&head) //按exp域遞減排序
} }
void add(polynode *ha,polynode *hb,polynode *&hc) //求兩有序集合的並,完成加法
else if (pa->expexp)
else //pa->exp=pb->exp
pa=pa->next;
pb=pb->next;
} }
if (pb!=null) pa=pb; //複製餘下的結點
while (pa!=null)
tc->next=null;
}
int main()
,,,};
polyarray b= ,,,,};
createlistr(ha,a,4);
createlistr(hb,b,5);
printf("原多項式a: ");
disppoly(ha);
printf("原多項式b: ");
disppoly(hb);
sort(ha);
sort(hb);
printf("有序多項式a: ");
disppoly(ha);
printf("有序多項式b: ");
disppoly(hb);
add(ha,hb,hc);
printf("多項式相加: ");
鍊錶的應用。
對於這種看上去比較難以理解的專案,要借助老師的**去理解,將別人的智慧型變成自己的智慧型,這樣才抄的合理。
多項式求和
多項式的描述如下 1 1 2 1 3 1 4 1 5 1 6 現在請你求出該多項式的前n項的和。輸入資料由2行組成,首先是乙個正整數m m 100 表示測試例項的個數,第二行包含m個正整數,對於每乙個整數 不妨設為n,n 1000 求該多項式的前n項的和。對於每個測試例項n,要求輸出多項式前n項的和...
多項式求和
time limit 1000ms memory limit 65536k 有疑問?點這裡 多項式描述如下 1 1 2 1 3 1 4 1 5 1 6 先請你求出多項式前n項的和。第一行輸入乙個數t代表測試資料個數 t 1000 接下來t行每行1個數代表n 0 n 2 31 對於每個輸入樣例,輸出多...
多項式求和
time limit 1000ms memory limit 65536k 有疑問?點這裡 多項式描述如下 1 1 2 1 3 1 4 1 5 1 6 先請你求出多項式前n項的和。第一行輸入乙個數t代表測試資料個數 t 1000 接下來t行每行1個數代表n 0 n 2 31 對於每個輸入樣例,輸出多...