Polynomial addition Operation using C++[2.65]
来源:互联网 发布:城管打人 知乎 编辑:程序博客网 时间:2024/05/22 03:12
Using a linked list to achieve a sum of one yuan polynomial, and later may continue to expand functions.
#include <iostream>using namespace std;struct PolyNode{float coef;int exp;struct PolyNode* next;};class LinkList{public:LinkList();LinkList(float a[],int b[],int n);~LinkList();int ListLength();void Get(int pos);int Locate(int item);void PrintLinkList();void Insert(int pos,int item);void Delete(int i);PolyNode* GetHead();private:PolyNode *head;PolyNode *rear;PolyNode *next;PolyNode *p; PolyNode *q; PolyNode *s;};LinkList::LinkList(){head = new PolyNode;head->next = NULL;}LinkList::~LinkList(){p = head->next;while(p){q = p;p = p->next;delete q;}head = NULL;}PolyNode* LinkList::GetHead(){return head;}LinkList::LinkList(float a[],int b[],int n){head = new PolyNode;p = head;for(int i=0;i<n;++i){s = new PolyNode;s->coef = a[i];s->exp = b[i];p->next = s;p = s;}p->next = NULL; }void LinkList::PrintLinkList(){p = head->next;while(p){cout<<p->coef<<"x^"<<p->exp;if(p->next)if(p->next->coef>=0)cout<<"+";p = p->next;}cout<<endl;}void Add(LinkList &A,LinkList &B){PolyNode *s = new PolyNode;PolyNode *k = new PolyNode;PolyNode *j = new PolyNode;j->next = k;PolyNode *pa =new PolyNode;PolyNode *pb = new PolyNode;pa = A.GetHead()->next;pb = B.GetHead()->next;while(pa&&pb){if(pa->exp<pb->exp){s = new PolyNode;s->coef = pa->coef;s->exp =pa->exp;k->next = s;k = k->next;pa = pa->next; }else if(pa->exp==pb->exp){pa->coef = pa->coef+pb->coef;if(pa->coef==0){}else{s = new PolyNode;s->coef = pa->coef;s->exp =pa->exp;k->next = s;k = k->next;}pa = pa->next;pb = pb->next;}else {s = new PolyNode;s->coef = pb->coef;s->exp =pb->exp;k->next = s;k = k->next;pb = pb->next;}}while(pb){k->next = pb;k = k->next;pb = pb->next;}while(pa){k->next = pa;k = k->next;pa = pa->next;}//printPolyNode *p = new PolyNode;p = j->next->next;while(p){cout<<p->coef<<"x^"<<p->exp;if(p->next)if(p->next->coef>=0)cout<<"+";p = p->next;}cout<<endl;}int main(){int m,n;float s;int k;float *a,*c;int *b,*d;cout<<"The first polynomial term:";cin>>m;a = new float[m];b = new int [m];for(int i = 0;i<m;++i){cout<<"The"<<i+1<<"coefficient:";cin>>s;a[i] = s;cout<<"The"<<i+1<<"index:";cin>>k;b[i] = k;}cout<<"The second polynomial term:";cin>>n;c = new float[n];d = new int [n];for(int i = 0;i<n;++i){cout<<"The"<<i+1<<"coefficient:";cin>>s;c[i] = s;cout<<"The"<<i+1<<"index:";cin>>k;d[i] = k;}LinkList A(a,b,m),B(c,d,n);cout<<"---Print A---"<<endl;A.PrintLinkList();cout<<"---Print B---"<<endl;B.PrintLinkList();cout<<"---Print A+B---"<<endl;Add(A,B);cout<<"--------";return 0;}
阅读全文
0 0
- Polynomial addition Operation using C++[2.65]
- Polynomial addition Operation using C++
- 1000. Polynomial Addition
- 1000. Polynomial Addition
- Polynomial operation with C++
- DSOJ Addition of Polynomial(多项式求和)
- C Polynomial
- one way of bitwise operation of C using struct
- C - Addition Chains
- Scale-space Processing Using Polynomial Representations
- Polynomial
- Polynomial
- Using Operation Queues for Concurrency
- Simple tutorial for using TensorFlow to compute polynomial regression
- 组合数学:C -- Simple Addition Expression
- c file operation
- Objective-C Operation Queues
- [C++]Operation on Relations
- 深入理解linux内核——内核同步
- Java结束线程的三种方法
- neuq 1202: 人民币问题
- setInterval
- jq代码学习3--某网站品牌列表的效果 fl ch2 p53
- Polynomial addition Operation using C++[2.65]
- SQL多表查询
- Python计算上个月最后一天和第一天
- 关于React-Native使用immutable(redux环境下)的一点用法
- 【数据库设计】关系型数据库 超键 候选键 主键 外键的区别
- git学习笔记
- HD-1232-畅通工程(并查集)
- Linux下OOM Killer机制详解(一)
- SELECT