c++中用链表表示一元多项式的相加
时间: 2024-09-27 16:14:12 浏览: 33
c++数据结构实验:多项式相加
5星 · 资源好评率100%
在 C++ 中,我们可以使用链表数据结构来表示一元多项式,并通过节点来存储系数和变量项。每个节点通常包含两个部分:一个用于存储系数(通常是整数或浮点数),另一个用于存储变量的指数(用于表示 x 的幂)。下面是一个简单的例子:
```cpp
class Term {
public:
double coefficient; // 系数
int exponent; // 指数
Term(double c = 0, int e = 0) : coefficient(c), exponent(e) {}
};
// 创建链表节点
class PolynomialTerm {
private:
Term term;
PolynomialTerm* next;
public:
PolynomialTerm(Term t, PolynomialTerm* n = nullptr) : term(t), next(n) {}
Term getTerm() const { return term; }
PolynomialTerm* getNext() const { return next; }
void setNext(PolynomialTerm* n) { next = n; }
};
// 表示多项式的链表
class Polynomial {
private:
PolynomialTerm* head;
public:
Polynomial() : head(nullptr) {}
void addTerm(double c, int e) {
if (!head) {
head = new PolynomialTerm(Term(c, e));
} else {
PolynomialTerm* current = head;
while (current->getNext()) {
current = current->getNext();
}
current->setNext(new PolynomialTerm(Term(c, e)));
}
}
// 可以添加其他方法如打印多项式等
void print() {
PolynomialTerm* temp = head;
while (temp) {
std::cout << temp->getTerm().coefficient << "x^" << temp->getTerm().exponent << " ";
temp = temp->getNext();
}
std::cout << "\n";
}
};
```
在这个设计中,`addTerm`函数会将新项添加到多项式的末尾。如果需要相加两个多项式,可以先创建两个 `Polynomial` 对象,然后分别添加它们的项,最后合并它们的链表。
阅读全文