[单链表]多项式乘法
2012-03-22 09:25
274 查看
《数据结构与算法分析 C语言描述》表,栈与队列部分课后习题
本文出自 “About:Blank H4cking” 博客,请务必保留此出处http://pnig0s1992.blog.51cto.com/393390/813245
//Code by Pnig0s1992 //Date:2012,3,22 #include <stdio.h> #include "Header.h" void MultPolynomial(LinkList Py1,LinkList Py2,LinkList LinkRc); void PrintfPolynomial(LinkList LinkRs); int main(int argc,char **argv) { LinkNode Ploy1; Ploy1.pNext = NULL; Insert(0,6,&Ploy1); Insert(1,5,&Ploy1); Insert(2,4,&Ploy1); Insert(3,3,&Ploy1); LinkNode Ploy2; Ploy2.pNext = NULL; Insert(0,10,&Ploy2); Insert(1,9,&Ploy2); Insert(2,8,&Ploy2); Insert(3,7,&Ploy2); LinkNode LinkResult; LinkResult.pNext = NULL; MultPolynomial(&Ploy1,&Ploy2,&LinkResult); printf("\nPoly1:"); PrintfPolynomial(&Ploy1); printf("\nPloy2:"); PrintfPolynomial(&Ploy2); printf("\nThe Multi result:"); PrintfPolynomial(&LinkResult); system("pause"); return 0; } //打印多项式乘法结果 void PrintfPolynomial(LinkList LinkRs) { LinkList LinkTemp = LinkRs->pNext; while(LinkTemp != NULL) { printf("+%dX^%d",LinkTemp->Coefficient,LinkTemp->Exponent); LinkTemp = LinkTemp->pNext; } } void MultPolynomial(LinkList Py1,LinkList Py2,LinkList LinkRc) { int iTempExp = 0; int iTempCoe = 0; LinkList LinkPy1 = Py1->pNext; LinkList LinkPy2 = Py2->pNext; while(LinkPy2 != NULL) { LinkPy1 = Py1->pNext;//每次循环回置头结点 while(LinkPy1 != NULL) { iTempExp = LinkPy1->Exponent+LinkPy2->Exponent; iTempCoe = LinkPy1->Coefficient*LinkPy2->Coefficient; if(isEmpty(LinkRc)) { Insert(iTempExp,iTempCoe,LinkRc); }else { LinkList LinkResult = LinkRc->pNext; while(LinkResult != NULL) { if(LinkResult->Exponent == iTempExp) { LinkResult->Coefficient += iTempCoe; break; }else if((LinkResult->Exponent < iTempExp && LinkResult->pNext->Exponent > iTempExp) || isLast(LinkResult)) { Insert(iTempExp,iTempCoe,LinkResult); break; } LinkResult = LinkResult->pNext; } } LinkPy1 = LinkPy1->pNext; } LinkPy2 = LinkPy2->pNext; } }
本文出自 “About:Blank H4cking” 博客,请务必保留此出处http://pnig0s1992.blog.51cto.com/393390/813245
相关文章推荐
- 链表的应用:单元多项式的加法、减法、乘法
- 一元多项式加法与乘法运算链表实现
- 链表实现多项式加法和乘法
- 链表的应用:单元多项式的加法、减法、乘法
- 链表练习:多项式的加法和乘法
- 通过链表实现的多项式乘法【C++】
- 多项式 链表 乘法
- 多项式乘法与加法运算(链表实现)
- 单链表例题 多项式加法乘法
- 数据结构第二次上机实验【链表实现多项式的加法和乘法】
- 数据结构实验 链表存储多项式进行加法乘法运算
- 链表实现多项式加法和乘法
- 链表实现多项式的加法和乘法
- 链表的应用 —— 多项式运算(加法+乘法)
- 多个有序链表的合并[续]---一元多项式的乘法与加法运算
- 链表实现多项式加法和乘法(C语言实现)
- 链表实现多项式的加法和乘法
- (1.2.1.5)链表的应用:单元多项式的加法、减法、乘法
- 一元多项式的乘法与加法运算——链表实现
- 链表应用--多项式加法、乘法