特殊矩阵的压缩存储算法的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件综合课程设计
特殊矩阵的压缩存储算法的实现二叉排序树的实现
二〇一四年六月
一、特殊矩阵的压缩存储算法的实现
1.问题陈述
对于特殊矩阵可以通过压缩存储减少存储空间。
基本要求:
1.针对多种特殊矩阵进行压缩存储,并能显示压缩后的相关地址和值;
2.输入在原来特殊矩阵中的地址,要求能从压缩后的矩阵中读出相应的值;
2.程序代码
#include
#include
#include
static shangsanjiao(int n)
{
int i,j,k,z,g;
int L[100][100],SA[100];
cout<<"请输入您要压缩矩阵的行列数"< cin>>n; cout<<"请输入您的矩阵内元素:"< for(i=1;i for(j=1;j { cin>>L[i][j]; if(i<=j) k=j*(j-1)/2+i-1; else k=n*(n+1)/2; SA[k]=L[i][j]; } cout<<"您输入的矩阵为:"< for(i=1;i {for(j=1;j cout< cout< } cout<<"压缩存储后:"< for(k=0;k cout< cout<<"若要读取矩阵的值请输入'100'退出输入'000'。"< cin>>z; for(g=0;g<1000;g++) { while(z==100) { cout<<"请您输入未压缩时所在行数:"< cout<<"请您输入未压缩时所在列数:"< if(i<=j) k=j*(j-1)/2+i-1; else k=n*(n+1)/2; cout<<"该地址的值为:"< cout< z=1; cout<<"继续请输入'100'退出输入'000'。"< } break; } } static duichen(int n) { int i,j,k,z,g; int L[100][100],SA[100]; cout<<"请输入您要压缩矩阵的行列数"< cout<<"请输入您的矩阵内元素:"< for(i=1;i for(j=1;j { cin>>L[i][j]; if(i>=j) k=i*(i-1)/2+j-1; else k=j*(j-1)/2+i-1; SA[k]=L[i][j]; } cout<<"您输入的矩阵为:"< for(i=1;i { for(j=1;j cout< cout< } cout<<"压缩存储后:"< for(k=0;k cout< cout<<"若要读取矩阵的值请输入'100'退出输入'000'。"< for(g=0;g<1000;g++) { while(z==100) { cout<<"请您输入未压缩时所在行数:"< cin>>i; cout<<"请您输入未压缩时所在列数:"< cin>>j; if(i>=j) k=i*(i-1)/2+j-1; else k=j*(j-1)/2+i-1; cout<<"该地址的值为:"< cout< z=1; cout<<"继续请输入'100'退出输入'000'。"< cin>>z; } break; } } static xiasanjiao(int n) { int i,j,k,z,g; int L[100][100],SA[100]; cout<<"请输入您要压缩矩阵的行列数"< cin>>n; cout<<"请输入您的矩阵内元素: "< for(i=1;i for(j=1;j { cin>>L[i][j]; if(i>=j) k=i*(i-1)/2+j-1; else k=n*(n+1)/2; SA[k]=L[i][j]; } cout<<"您输入的矩阵为:"< for(i=1;i {