對於一元多項式p(x)=p0+p1x+p2x2+…+pnxn,每個項都有係數和指數兩部分,例如p2x2的係數為p2,指數為2。
程式設計實現兩個多項式的相加。
例如5+x+2x2+3x3,-5-x+6x2+4x4,兩者相加結果:8x2+3x3+4x4
其中係數5和-5都是x的0次方的係數,相加後為0,所以不顯示。x的1次方同理不顯示。
可用順序表或單鏈表實現。
第1行:輸入t表示有t組測試資料
第2行:輸入n表示有第1組的第1個多項式包含n個項
第3行:輸入第一項的係數和指數,以此類推輸入n行
接著輸入m表示第1組的第2個多項式包含m項
同理輸入第2個多項式的m個項的係數和指數
參考上面輸入第2組資料,以此類推輸入t組
假設所有資料都是整數
對於每1組資料,先用兩行輸出兩個原來的多項式,再用一行輸出運算結果,不必考慮結果全為0的情況
1.如果指數或係數是負數,用小括號括起來。
2.如果係數為0,則該項不用輸出。
3.如果指數不為0,則用符號^表示,例如x的3次方,表示為x^3。
4.多項式的每個項之間用符號+連線,每個+兩邊加1個空格隔開。
#include using namespace std;
#define ok 0
#define error -1
class listnode
};
class linklist
p->next = n;
return 0;
}void ll_display();
void add(linklist &l)
else
delete temp;
}else if(p->index > q->index)
else
}if(p == null)
l.head->next = null;
}};
linklist::linklist()
linklist::~linklist() //鍊錶**,要逐個結點**
head = null;
}void linklist::ll_display()
else if(p->data <0)
else
if(p->index != 0)
else
}p = p->next;
}cout<> t;
while(t--)
l1.ll_display();
cin >> n;
for(i=1;i<=n;i++)
l2.ll_display();
l1.add(l2);
l1.ll_display();
}return 1;
}
資料結構 鍊錶,多項式相加
指標真的是蠻重要的,基礎不牢怨不得別人,鍊錶差點給我學自閉,尤其是資料結構演算法這塊 下面分享乙個很簡單的鍊錶應用 多項式相加 ps 多項式錄入還不完善,故只能按指數從小往大挨個順序輸入 水平較差請多諒解,應用基礎 c 雖然可讀性不高但耐心點初學者應該都能讀懂 1.面向結構的程式語言 將程式按照功能...
資料結構實踐教程 線性表(一元多項式相加)
一 實驗要求 使用者根據自己的需求輸入兩個一元多項式,要求能夠顯示輸入的一元多項式,再將這兩個一元多項式相加,輸出結果。二 實現 include include include include include using namespace std typedef struct plnodeplno...
資料結構線性表的應用(集合 多項式)
今天老師提到了集合的運算,我就想起來需要用線性表來進行集合的運算 雖然陣列也可 前不久寫了多項式運算的 但是核心部分的加減還是有點模糊,決定細緻的再看一下 again 演算法有 void mergelist list la,list lb 時間複雜度o n m 1 順序有序表的合併 這裡簡述演算法步...