其實這個還是有點問題的,在偶見情況下會列印出0*x,目前無解唔。。。
原理就是借用線性表,然後做運算直接先插入到後面。
然後遍歷一下,只要指數相同就合併在前面乙個裡面,後面的歸0(不刪除)。
列印的時候加乙個判斷是否為0的條件就行了。
下面是原始碼:
#include#includeusing
namespace
std;
struct
node
;class
polynomial
;polynomial::polynomial()
polynomial::polynomial(
double a, int n, int
number)
setup();
}polynomial::~polynomial()
}void polynomial::add(double a, int n, int
number)
tail->link =null;
setup();
}void polynomial::subtract(double a, int n, int
number)
tail->link =null;
setup();
}void
polynomial::setup()
p = p->link;
}m = m->link;
}tail->link =null;
}void
polynomial::print()
node *p =head;
while (p !=null)
if (p->coe == 0
)
else}}
}int
main()
polynomial test1(coe, index, number);
test1.print();
cout
<< "
請輸入相加的多項式的元素個數:
"
>number; delete
index;
delete
coe;
index = new
int[number];
coe = new
double
[number];
for (int i = 0; i < number; i++)
test1.add(coe, index, number);
cout
<< "
相加成功!
"
cout
<< "
請輸入相減的多項式的元素個數:
"
>number; delete
index;
delete
coe;
index = new
int[number];
coe = new
double
[number];
for (int i = 0; i < number; i++)
test1.subtract(coe, index, number);
cout
<< "
相減成功!
"
system(
"pause");
return0;
}
資料結構之多項式相加
問題描述 編寫乙個程式用單鏈表儲存多項式,並實現兩個一元多項式a與b相加的函式。a,b剛開始是無序的,a與b之和按降序排列。例如 多項式a 1.2x 0 2.5x 1 3.2x 3 2.5x 5 多項式b 1.2x 0 2.5x 1 3.2x 3 2.5x 5 5.4x 10 多項式a與b之和 5....
資料結構 鍊錶,多項式相加
指標真的是蠻重要的,基礎不牢怨不得別人,鍊錶差點給我學自閉,尤其是資料結構演算法這塊 下面分享乙個很簡單的鍊錶應用 多項式相加 ps 多項式錄入還不完善,故只能按指數從小往大挨個順序輸入 水平較差請多諒解,應用基礎 c 雖然可讀性不高但耐心點初學者應該都能讀懂 1.面向結構的程式語言 將程式按照功能...
資料結構學習 多項式相加
多項式相加 include include typedef struct lnodelnode typedef struct lnode linklist void createlist l linklist l void initlist l linklist l void createlist ...