一元多項(xiàng)式加法運(yùn)算
題目說(shuō)明:
編寫(xiě)一元多項(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),參見(jiàn)測(cè)試用例):
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é)果(參見(jiàn)測(cè)試用例)。
- 1 多項(xiàng)式輸出格式:以指數(shù)遞增的順序輸出: <系數(shù),指數(shù)>,<系數(shù),指數(shù)>,<系數(shù),指數(shù)>,參見(jiàn)測(cè)試用例。零多項(xiàng)式的輸出格式為<0,0>
- 0 無(wú)輸出
測(cè)試輸入
1
2
1 1 2 2
2
1 1 2 2
2
1 1 2 2
測(cè)試輸出
<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é)
以上就是這篇文章的全部?jī)?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地址類(lèi)項(xiàng)目參考
- C++實(shí)踐數(shù)組作數(shù)據(jù)成員的參考
- 一張圖總結(jié)C++中關(guān)于指針的那些事
- C++實(shí)踐數(shù)組類(lèi)運(yùn)算的實(shí)現(xiàn)參考
- C++實(shí)踐Time類(lèi)中的運(yùn)算符重載參考方法
- C++實(shí)踐分?jǐn)?shù)類(lèi)中運(yùn)算符重載的方法參考
相關(guān)文章
Java?C++?算法題解leetcode652尋找重復(fù)子樹(shù)
這篇文章主要為大家介紹了Java?C++?算法題解leetcode652尋找重復(fù)子樹(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09C語(yǔ)言函數(shù)調(diào)用約定和返回值詳情
這篇文章主要介紹了C語(yǔ)言函數(shù)調(diào)用約定和返回值詳情,函數(shù)調(diào)用約定不同,會(huì)影響函數(shù)生成的符號(hào)名,函數(shù)入?yún)㈨樞颍螀?nèi)存的清理者,更多相關(guān)需要的小伙伴可以參考下文詳情介紹2022-07-07C++?反匯編之關(guān)于Switch語(yǔ)句的優(yōu)化措施
這篇文章主要介紹了C++?反匯編之關(guān)于Switch語(yǔ)句的優(yōu)化措施,利用三種優(yōu)化來(lái)降低樹(shù)高度,誰(shuí)的效率高就優(yōu)先使用誰(shuí),三種優(yōu)化都無(wú)法匹配才會(huì)使用判定樹(shù),具體內(nèi)容詳情跟隨小編一起看看吧2022-01-01C++11中std::function基礎(chǔ)用法詳解
std::function是C++11標(biāo)準(zhǔn)庫(kù)中提供的一種可調(diào)用對(duì)象的通用類(lèi)型,它可以存儲(chǔ)任意可調(diào)用對(duì)象,本文就來(lái)和大家講講它的基礎(chǔ)用法,希望對(duì)大家有所幫助2023-04-04C++使用TinyXML2實(shí)現(xiàn)解析和生成XML數(shù)據(jù)
TinyXML2是一個(gè)輕量級(jí)的、開(kāi)源的C++庫(kù),專(zhuān)門(mén)用于解析和生成XML文檔,本文主要為大家介紹了如何使用TinyXML2實(shí)現(xiàn)解析和生成XML數(shù)據(jù),需要的可以參考下2024-04-04VC實(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)程問(wèn)題有一定的幫助,需要的朋友可以參考下2014-07-07C語(yǔ)言實(shí)現(xiàn)通訊錄的方法(包括靜態(tài)版本和動(dòng)態(tài)版本)
本文給大家分享C語(yǔ)言實(shí)現(xiàn)通訊錄的方法(包括靜態(tài)版本和動(dòng)態(tài)版本),針對(duì)每種方法給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-09-09