用c++编程实现稀疏矩阵的三元组顺序表存储
时间: 2024-03-18 12:41:27 浏览: 130
数据结构C语言版 稀疏矩阵的三元组顺序表存储表示和实现.doc
好的,以下是C++代码实现稀疏矩阵的三元组顺序表存储:
```c++
#include<iostream>
using namespace std;
//三元组结构体
struct Triple {
int row, col, value; //行、列、非0元素值
};
//稀疏矩阵三元组顺序表存储结构体
struct SparseMatrix {
int rows, cols, nums; //行数、列数、非0元素个数
Triple data[100]; //非0元素三元组数组
};
//创建稀疏矩阵
void createSparseMatrix(SparseMatrix &sm) {
cout << "请输入稀疏矩阵的行数、列数、非0元素个数:" << endl;
cin >> sm.rows >> sm.cols >> sm.nums;
cout << "请输入非0元素的行、列、值:" << endl;
for(int i = 0; i < sm.nums; i++) {
cin >> sm.data[i].row >> sm.data[i].col >> sm.data[i].value;
}
}
//输出稀疏矩阵
void printSparseMatrix(SparseMatrix sm) {
int k = 0;
for(int i = 1; i <= sm.rows; i++) {
for(int j = 1; j <= sm.cols; j++) {
if(i == sm.data[k].row && j == sm.data[k].col) {
cout << sm.data[k].value << " ";
k++;
}
else {
cout << "0 ";
}
}
cout << endl;
}
}
int main() {
SparseMatrix sm;
createSparseMatrix(sm);
printSparseMatrix(sm);
return 0;
}
```
这里使用了一个简单的输出方式,将稀疏矩阵转换为普通矩阵输出。你可以根据自己的需要进行修改。
阅读全文