c++实现利用线性表的顺序存储结构完成一元多项式的相加
时间: 2024-09-24 13:09:47 浏览: 52
数据结构——一元多项式加法.zip
在C++中,我们可以使用数组或动态数组(vector)来实现一元多项式(Polynomial)的顺序存储结构,因为一元多项式通常表示为系数-指数对的形式,如(a_n * x^n + a_{n-1} * x^{n-1} + ... + a_0)。
这里是一个简单的示例,展示如何实现两个一元多项式的相加:
```cpp
#include <iostream>
#include <vector>
class Polynomial {
public:
int coefficients[100]; // 或者 std::vector<int> coefficients;
int degree; // 最高项的指数
Polynomial() : degree(0) {}
void addCoefficient(int coefficient, int exponent) {
if (exponent > degree)
degree = exponent;
coefficients[degree] += coefficient;
}
void display() const {
for (int i = degree; i >= 0; --i) {
if (coefficients[i])
std::cout << coefficients[i] << "x^" << i << " ";
}
std::cout << std::endl;
}
Polynomial operator+(const Polynomial& other) const {
Polynomial result;
result.degree = std::max(degree, other.degree);
for (int i = -result.degree; i <= result.degree; ++i) {
result.coefficients[i] = coefficients[i] + other.coefficients[i];
}
return result;
}
};
int main() {
Polynomial p1, p2;
p1.addCoefficient(2, 2); // 2x^2
p1.addCoefficient(3, 1); // 3x^1
p1.addCoefficient(4, 0); // 4x^0
p2.addCoefficient(5, 2); // 5x^2
p2.addCoefficient(6, 1); // 6x^1
Polynomial sum = p1 + p2;
std::cout << "p1: ";
p1.display();
std::cout << "p2: ";
p2.display();
std::cout << "sum: ";
sum.display();
return 0;
}
```
在这个例子中,`Polynomial`类包含了系数数组和度数属性。`addCoefficient`方法用于添加新的系数和指数,`display`方法用于打印多项式,而`operator+`实现了两个多项式的相加操作。
阅读全文