下三角矩阵在一维空间中的存储检索
假设该下三角矩阵是15*15的矩阵,则需要150个空间来存储
用start数组记录着下三角矩阵每行起始元素的位置,起始位置加第j列可以得到该元素在一维存储空间中的位置,代码如下:
#include <iostream>
using namespace std;
int B[120],start[15]; //start记录着下三角矩阵每行起始元素的位置
int search(int col, int lie){
return start[col]+lie; //检索函数,返回元素所在位置
}
int main(){
start[0]=0; //首个元素位置初始化为0
for (int i=1;i<15;i++){ //每行起始元素的位置递增
start[i] = start[i-1]+i;
}
int col,lie;
cin>>col>>lie;
int p=search(col-1,lie-1); //寻找第i行j列的元素位置
cout<<p;
}