稀疏矩阵的存储(c++)
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
6
0
0
0
0
9
0
0
0
0
0
0
0
12
0
#include<iostream>
#include<iomanip>
using
namespace std;
int main()
{
int
number[5][3] = {
{5,
6,
4}, //5表示一共5列,6表示6行,4表示有4个非0元素
{1,
1,
3}, //记录存储的第一个非0元素的行数,列数和对应的值,后面的含义相同
{2,
3, 6},
{3,
2, 9},
{4,
4, 12}
};
int
k; //用来存储非零元素的索引
k
= 1;
cout <<
"稀疏矩阵"
<< endl;
for
(int i = 0; i < 5;i++)
{
for
(int j = 0; j < 3;j++)
{
cout<<setiosflags(ios::left);
cout <<setw(10)<<
number[i][j];
}
cout << endl;
}
cout <<
"还原稀疏矩阵:"
<< endl;
for
(int i = 0; i <
number[0][0];i++) //循环稀疏矩阵的列
{
for
(int j = 0; j <
number[0][1];j++) //循环稀疏矩阵的行
{
if
(k <= number[0][2] && (i == number[k][0]) && (j
==
number[k][1])) //判断是否为非零元素,如果是非零元素则输出非零元素
{
cout << setw(5)
<< number[k][2];
k++;
}
else
cout << setw(5)
<<
0; //输出为0的元素
}
cout << endl;
}
return
0;
}
最新文章
- iOS开发 - OC - 实现本地数据存储的几种方式二(直接使用sqlite)
- noSuchMethodException问题
- HashMap 和 HashTable区别
- c#让窗体永在最前 调用windows api 将窗体设为topmost
- 【Lucene3.6.2入门系列】第15节_SolrJ高亮
- 7——使用TextView实现跑马灯
- AndroidUI--SlidingMenu使用例子
- C++输出数据到txt
- NSThread创建线程的三种方法
- editplus的设置
- 【Spring系列】Spring mvc整合redis(非集群)
- 第一篇:Python入门
- MongoDB 条件操作符
- String输出结果to thi
- QCAD 怎么把多余的线剪掉
- 如何编译luabind支持vs2010之后所有版本
- Kmeans:利用Kmeans实现对多个点进行自动分类—Jason niu
- linux系统切换用户
- syslog系统日志、Windows事件日志监控
- 基于R语言的时间序列分析预测