一元多項(xiàng)式加法運(yùn)算
題目說明:
編寫一元多項(xiàng)式加法運(yùn)算程序。要求用線性鏈表存儲(chǔ)一元多項(xiàng)式。該程序有以下幾個(gè)功能:
1. 多項(xiàng)式求和
輸入:輸入三個(gè)多項(xiàng)式,建立三個(gè)多項(xiàng)式鏈表Pa、Pb、Pc
(提示:調(diào)用CreatePolyn(polynomial &P,int m)。
輸出:顯示三個(gè)輸入多項(xiàng)式Pa、Pb、Pc、和多項(xiàng)式Pa+Pb、多項(xiàng)式Pa+Pb+Pc
(提示:調(diào)用AddPolyn(polynomial &Pa, polynomial Pb), 調(diào)用PrintPolyn(polynomial P))。
0. 退出
輸入:
根據(jù)所選功能的不同,輸入格式要求如下所示(第一個(gè)數(shù)據(jù)是功能選擇編號(hào),參見測試用例):
1
- 多項(xiàng)式A包含的項(xiàng)數(shù),以指數(shù)遞增的順序輸入多項(xiàng)式A各項(xiàng)的系數(shù)(整數(shù))、指數(shù)(整數(shù))
- 多項(xiàng)式B包含的項(xiàng)數(shù),以指數(shù)遞增的順序輸入多項(xiàng)式B各項(xiàng)的系數(shù)(整數(shù))、指數(shù)(整數(shù))
- 多項(xiàng)式C包含的項(xiàng)數(shù),以指數(shù)遞增的順序輸入多項(xiàng)式C各項(xiàng)的系數(shù)(整數(shù))、指數(shù)(整數(shù))
0 ---操作終止,退出。
輸出:
對(duì)應(yīng)一組輸入,輸出一次操作的結(jié)果(參見測試用例)。
- 1 多項(xiàng)式輸出格式:以指數(shù)遞增的順序輸出: <系數(shù),指數(shù)>,<系數(shù),指數(shù)>,<系數(shù),指數(shù)>,參見測試用例。零多項(xiàng)式的輸出格式為<0,0>
- 0 無輸出
測試輸入
1
2
1 1 2 2
2
1 1 2 2
2
1 1 2 2
測試輸出
<1,1>,<2,2>
<1,1>,<2,2>
<1,1>,<2,2>
<2,1>,<4,2>
<3,1>,<6,2>
源代碼
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int ElemType;
typedef int Status;
typedef struct LNode
{
ElemType coef; //系數(shù)
ElemType exp; //指數(shù)
struct LNode *next;
}LNode, *LinkList; //線性鏈表的結(jié)構(gòu)
void CreateList(LinkList &H)
{
int a, b, n;
LinkList p;
scanf("%d", &n);
H = (LinkList)malloc(sizeof(LNode));
p = H;
for (int i = 0; i<n; i++)
{
scanf("%d%d", &a, &b);
p->next = (LinkList)malloc(sizeof(LNode));
p = p->next;
p->coef = a;
p->exp = b;
}
p->next = NULL;
}//CreateList //以線性鏈表的結(jié)構(gòu)建立一元多項(xiàng)式
void PrintList(LinkList &head)
{
LinkList p;
p = head->next;
if (p == NULL)
{
printf("<0,0>\n");
return;
}
else{
printf("<%d,%d>", p->coef, p->exp);
p = p->next;
}
while (p)
{
printf(",<%d,%d>", p->coef, p->exp);
p = p->next;
}
printf("\n");
}//PrintList
void AddPolyn(LinkList &pa, LinkList &pb)
{
int sum = 0;
LinkList a, b, q, cur;
a = pa->next;
b = pb->next;
cur = pa;
while ((a != NULL) && (b != NULL))
{
if (a->exp < b->exp)
{
cur = a;
a = a->next;
}
else if (a->exp == b->exp)
{
sum = a->coef + b->coef;
if (sum == 0)
{
q = a->next;
free(a);
a = q;
cur->next = q;
}
else
{
a->coef = sum;
cur = a;
a = a->next;
}
q = b;
b = b->next;
free(q);
}
else
{
q = b->next;
b->next = a;
cur->next = b;
cur = b;
b = q;
}
}
if (b)
cur->next = b;
}//AddPolyn
Status main()
{
int N;
while (scanf("%d", &N)!=EOF)
{
if (N == 0)
break;
LinkList pa, pb, pc;
CreateList(pa);
CreateList(pb);
CreateList(pc);
PrintList(pa);
PrintList(pb);
PrintList(pc);
AddPolyn(pa, pb);
PrintList(pa);
AddPolyn(pa, pc);
PrintList(pa);
}
return 0;
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- C++面試基礎(chǔ)之static關(guān)鍵字詳解
- C++稀疏矩陣的各種基本運(yùn)算并實(shí)現(xiàn)加法乘法
- Dijkstra算法最短路徑的C++實(shí)現(xiàn)與輸出路徑
- C++項(xiàng)目求Fibonacci數(shù)列的參考解答
- C++實(shí)踐IP地址類項(xiàng)目參考
- C++實(shí)踐數(shù)組作數(shù)據(jù)成員的參考
- 一張圖總結(jié)C++中關(guān)于指針的那些事
- C++實(shí)踐數(shù)組類運(yùn)算的實(shí)現(xiàn)參考
- C++實(shí)踐Time類中的運(yùn)算符重載參考方法
- C++實(shí)踐分?jǐn)?shù)類中運(yùn)算符重載的方法參考
相關(guān)文章
Java?C++?算法題解leetcode652尋找重復(fù)子樹
這篇文章主要為大家介紹了Java?C++?算法題解leetcode652尋找重復(fù)子樹示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
C++?反匯編之關(guān)于Switch語句的優(yōu)化措施
這篇文章主要介紹了C++?反匯編之關(guān)于Switch語句的優(yōu)化措施,利用三種優(yōu)化來降低樹高度,誰的效率高就優(yōu)先使用誰,三種優(yōu)化都無法匹配才會(huì)使用判定樹,具體內(nèi)容詳情跟隨小編一起看看吧2022-01-01
C++11中std::function基礎(chǔ)用法詳解
std::function是C++11標(biāo)準(zhǔn)庫中提供的一種可調(diào)用對(duì)象的通用類型,它可以存儲(chǔ)任意可調(diào)用對(duì)象,本文就來和大家講講它的基礎(chǔ)用法,希望對(duì)大家有所幫助2023-04-04
C++使用TinyXML2實(shí)現(xiàn)解析和生成XML數(shù)據(jù)
TinyXML2是一個(gè)輕量級(jí)的、開源的C++庫,專門用于解析和生成XML文檔,本文主要為大家介紹了如何使用TinyXML2實(shí)現(xiàn)解析和生成XML數(shù)據(jù),需要的可以參考下2024-04-04
VC實(shí)現(xiàn)A進(jìn)程窗口嵌入到B進(jìn)程窗口中顯示的方法
這篇文章主要介紹了VC實(shí)現(xiàn)A進(jìn)程窗口嵌入到B進(jìn)程窗口中顯示的方法,對(duì)于理解windows程序運(yùn)行原理的進(jìn)程問題有一定的幫助,需要的朋友可以參考下2014-07-07
C語言實(shí)現(xiàn)通訊錄的方法(包括靜態(tài)版本和動(dòng)態(tài)版本)
本文給大家分享C語言實(shí)現(xiàn)通訊錄的方法(包括靜態(tài)版本和動(dòng)態(tài)版本),針對(duì)每種方法給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-09-09

