問題描述 :
假設2個稀疏一元多項式分別由帶頭結點的有序單鏈表a和b儲存(指數項遞增有序)。現要求設計乙個演算法,實現稀疏一元多項式的加減法計算。要求使用a和b的原儲存空間(運算後b不再存在,a鍊錶中儲存結果多項式)。輸入中的單鏈表的長度不得在計算演算法中利用,僅作為建表使用。
注意:加/減法計算後,如某一項的結果係數為0,則該項要從多項式鍊錶中刪除。
輸入說明 :
第一行:加/減法選擇(0:加法 1:減法)
第二行:一元多項式a的項數
第三行:一元多項式a的各項的係數(係數之間以空格分隔)
第四行:一元多項式a的各項的指數(指數之間以空格分隔)
第五行:一元多項式b的項數
第六行:一元多項式b的各項的係數(係數之間以空格分隔)
第七行:一元多項式b的各項的指數(指數之間以空格分隔)
如果a或b的項數為0,則認為輸入的多項式只包含數字「0」,即係數為0,指數也為0。
輸出說明 :
第一行:多項式a的第一項的係數、指數(以空格分隔)
第一行:多項式a的第二項的係數、指數(以空格分隔)
…第n行:多項式a的第n項的係數、指數(以空格分隔) (假設多項式a的項數為n)
(空行)
第一行:多項式b的第一項的係數、指數(以空格分隔)
第一行:多項式b的第二項的係數、指數(以空格分隔)
…第m行:多項式b的第m項的係數、指數(以空格分隔) (假設多項式b的項數為m)
(空行)
第一行:加/減法計算後,結果多項式a的第一項的係數、指數(以空格分隔)
第一行:加/減法計算後,結果多項式a的第二項的係數、指數(以空格分隔)
第p行:加/減法計算後,結果多項式a的第n項的係數、指數(以空格分隔) (假設結果多項式的項數為p)
(多項式之間以空行分隔,如果多項式只包含「0」,則相應的多項式輸出"0 0",不包含引號。)
輸入範例 :16
7 3 -22 9 5 -8
0 1 7 8 17 100
38 22 -9
1 7 8
輸出範例 :
7 03 1
-22 7
9 85 17
-8 100
8 122 7
-9 8
7 0-5 1
-44 7
18 8
5 17
-8 100
#include
using
namespace std;
int arr[
10000[[
2];//用來儲存係數和指數的陣列
struct listnode
;//建立有序鍊錶
void
createlistinorder
(listnode *head,
int n)
node-
>next = p-
>next;
p->next = node;}}
void
display
(listnode *head)
while
(p !=
null
) cout<}void
test
(listnode *a,listnode *b,
int oper)
if(pb ==
null
)else
if(pa-
>zs == pb-
>zs)
else
pb = pb-
>next;
} pa = pa-
>next;}}
//刪除b鍊錶
void
deleteblist
(listnode *head)
delete head;
//刪除頭節點
}//刪除a鍊錶中係數為0的節點
void
deletealist
(listnode *head)
pre = p;
p = p-
>next;}}
intmain()
}createlistinorder
(a,n)
;//輸入b的m項係數和指數
cin>>m;
for(
int i =
0; i <
2; i++)}
createlistinorder
(b,n)
;test
(a,b,oper)
;deleteblist
(b);
deletealist
(a);
display
(a);
return0;
}
10 一元多項式的加 減法運算
假設2個稀疏一元多項式分別由帶頭結點的有序單鏈表a和b儲存 指數項遞增有序 現要求設計乙個演算法,實現稀疏一元多項式的加減法計算。要求使用a和b的原儲存空間 運算後b不再存在,a鍊錶中儲存結果多項式 輸入中的單鏈表的長度不得在計算演算法中利用,僅作為建表使用。注意 加 減法計算後,如某一項的結果係數...
一元多項式的加 減法運算
問題描述 假設2個稀疏一元多項式分別由帶頭結點的有序單鏈表a和b儲存 指數項遞增有序 現要求設計乙個演算法,實現稀疏一元多項式的加減法計算。要求使用a和b的原儲存空間 運算後b不再存在,a鍊錶中儲存結果多項式 輸入中的單鏈表的長度不得在計算演算法中利用,僅作為建表使用。注意 加 減法計算後,如某一項...
(C )多項式加減法(一元)
easy 一元多項式表示 include includeusing namespace std struct node int main cout pre head for int i 1 i n i cout x cout cout int num 0 pre head for int i 1 i...