数据结构中上三角矩阵的定义c++代码
时间: 2023-07-16 19:14:46 浏览: 257
上三角矩阵是指在矩阵中,下三角(包括对角线)的元素均为零。下面是一个基于C++的上三角矩阵的定义:
```cpp
#include<iostream>
using namespace std;
class UpperTriangularMatrix {
private:
int *A; // 存储上三角矩阵元素的数组
int n; // 上三角矩阵的大小
public:
UpperTriangularMatrix(int n) {
this->n = n;
A = new int[n*(n+1)/2];
}
~UpperTriangularMatrix() {
delete []A;
}
void set(int i, int j, int x);
int get(int i, int j);
void display();
};
// 将上三角矩阵的元素存储到数组中
void UpperTriangularMatrix::set(int i, int j, int x) {
if(i <= j) {
A[(i-1)*n - (i-2)*(i-1)/2 + j-i] = x;
}
}
// 获取上三角矩阵的元素
int UpperTriangularMatrix::get(int i, int j) {
if(i <= j) {
return A[(i-1)*n - (i-2)*(i-1)/2 + j-i];
}
return 0;
}
// 显示上三角矩阵
void UpperTriangularMatrix::display() {
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
if(i <= j) {
cout<<A[(i-1)*n - (i-2)*(i-1)/2 + j-i]<<" ";
} else {
cout<<"0 ";
}
}
cout<<endl;
}
}
int main() {
UpperTriangularMatrix m(4);
m.set(1,1,1);
m.set(1,2,2);
m.set(1,3,3);
m.set(1,4,4);
m.set(2,2,5);
m.set(2,3,6);
m.set(2,4,7);
m.set(3,3,8);
m.set(3,4,9);
m.set(4,4,10);
m.display();
return 0;
}
```
上面的代码定义了一个 `UpperTriangularMatrix` 类,通过数组来存储上三角矩阵的元素。其中,`set` 方法用于设置上三角矩阵中的元素,`get` 方法用于获取上三角矩阵中的元素,`display` 方法用于在终端上打印出上三角矩阵。你可以根据需要修改这些方法。
阅读全文