📄 yiyuanduoxianshi.txt
字号:
#ifndef Polynomial_H
#define Polynomial_H
#include "List.h"
class Term
{
public:
int coef;
int exp;
Term() : coef(0), exp(0) {}
Term(int c, int e) : coef(c), exp(e) {}
Term(int c) : coef(c), exp(0) {}
};
class Polynomial : List<Term>
{
public:
void Input()
{
cout << endl << "输入多项式的各项系数和指数";
cout << endl << "注意:请按降序输入各项,输入系数0表示结束" << endl;
int coef, exp;
for(int i = 1; ; i++)
{
cout << "第" << i << "项的系数:";
cin >> coef;
if (coef)
{
cout << "指数:";
cin >> exp;
Term term(coef, exp);
Insert(term);
}
else break;
}
}
void Print()
{
cout << endl;
First();
if (!IsEmpty())
{
Term *p = Next();
cout << p->coef;
if (p->exp)
{
cout << "x";
if (p->exp != 1) cout << "^" << p->exp;
}
while (Next() != NULL)
{
p = Get();
if (p->coef > 0) cout << "+";
cout << p->coef;
if (p->exp)
{
cout << "x";
if (p->exp != 1) cout << "^" << p->exp;
}
}
}
cout << endl;
}
friend void PolyAdd (Polynomial &polyA, Polynomial &polyB)
{
Node<Term> *pA, *pB;
polyA.First();polyB.First();
pA = polyA.pNext();pB = polyB.pNext();
while (pA != NULL && pB !=NULL)
{
if (pA->data.exp == pB->data.exp)
{
pA->data.coef = pA->data.coef + pB->data.coef;
polyB.Remove();
if (!pA->data.coef) polyA.Remove();
else polyA.pNext();
}
else
{
if (pA->data.exp > pB->data.exp)
{
polyB.pRemove();
polyA.InsertBefore(pB);
}
else if (pA->data.exp < pB->data.exp) polyA.pNext();
}
pA = polyA.pGet();pB = polyB.pGet();
}
if (pA == NULL)
{
polyA.pGetPrior()->link = pB;
polyB.pGetPrior()->link = NULL;
}
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -