怎样用矩阵存储一个无规律的数列?

来源:百度知道 编辑:UC知道 时间:2024/06/08 00:52:57
有一个递增的数列如0,1,30,100,300,1230,49213个数可能会很多,最大数到100000000,怎样用矩阵来存储这个数列,还能还原出原来的数列?用其他方法也行,但矩阵不能太大。

可以用动态内存申请呀,提供C和C++各自不同的实现

C的实现如下:
int** table;
int row; //行数
int col[1000000]; //各行的列数
int i;
//行数赋值,各行列数赋值
table=(int**)malloc(row*sizeof(int*));
for (i=0; i<row; i++) table[i]=(int*)malloc(col[i]*sizeof(int));
//进行各种操作,直接用table[i][j]访问即可
//操作结束,释放空间
for (i=0; i<row; i++) free(table[i]);
free(table);

C++实现如下:
int** table;
int row; //行数
int col[1000000]; //各行的列数
int i;
//行数赋值,各行列数赋值
table=new int*[row];
for (i=0; i<row; i++) table[i]=new int[col[i]];
//进行各种操作,直接用table[i][j]访问即可
//操作结束,释放空间
for (i=0; i<row; i++) delete []table[i];
delete []table;

#include<iostream>
#include<iomanip>
#include<cassert>
using namespace std;
class Matrix;
class MatrixRow
{
public:
MatrixRow(Matrix* m,int s);
double& operator[](int j);
private:
Matrix* mat;
int i;
};