文档详情

中国石油大学数据结构上机实验.doc

发布:2018-12-19约5.87千字共12页下载文档
文本预览下载声明
《数据结构》实验报告 学号2015011512姓名胡明禹专业数学与应用数学时间2018.4.24 一、 实验题目 实验5稀疏矩阵的转置 二、 实验目的 稀疏矩阵的压缩存储方法 掌握稀疏矩阵的转置算法 三、 算法设计分析 (一)实验内容 从键盘输入数据,建立稀疏矩阵的三元组顺序存储 实现稀疏矩阵的转置算法 输出原矩阵及转置后的矩阵 实现矩阵的快速转置算法 (二)总体设计 此处给出主要函数功能、及函数间调用关系的的描述。例如:①创建稀疏矩阵函数 ②转置矩阵T函数③快速转置函数④输出函数⑤输出原矩阵和转置函数 其功能描述如T: (1) 主函数:统筹调用各个函数以实现相应功能 Status main() (2) ①创建稀疏矩阵函数 Status CreateSMatrixfTSMatrix M) {printf(请输入原矩阵:\n); printf(行数、列数:); scanf(%d%d/ M.nu); printf(元素总数:); printf(输入各个对应压缩值:\nn); for (int i = 1; i = M.tu; ++i) scanf(%d%d%d/ M.data[i].i/ M.data[i].j, M.data[i].e); return OK; } 转罝矩阵T函数 Status TransposeSMatrix(TSMatrix M, TSMatrix T) {int p, q# col; T.mu = M.nu; T.nu = M.mu; T.tu = M.tu; if (T.tu) { q = 1; for (col = 1; col = M.nu; ++col) for (p = 1; p = M.tu; ++p) if (M.data[p].j == col) { T.data[q].i = M.data[p .j; T.data[q].j = M.data[p].i; T.data[q].e = M.data[p].e; ++q; } } printf(\n\n稀疏矩阵M转置成功。\n\n); return OK; }// TransposeSMatrix 快速转賈函数 Status FastTransposeSMatrix(TSMatrix M, TSMatrix T) { T.mu = M.nu; T.nu = M.mu; T.tu = M.tu; if (T.tu) { int col,t,q; int num[100], cpot[100]; for (col = 1; col = M.nu; ++col) num[col] = 0; for (t = 1; t = M.tu; ++t) ++num[M.data [t .j]; cpot[l] = 1; for (col = 2; col = M.nu; ++col) cpot[col] = cpot[col -1] + num[col -1]; //求 cpot 向量 for (int p = 1; p = M.tu; ++p) { col = M.data[p].j; q = cpot[col]; T.data[q].i = M.data[p].j; T.data[q].j = M.data[p].i; T.data[q].e = M.data[p].e; ++cpot[col]; }for }//if printf(\n\n稀疏矩阵M快速转置成功。\n\n); return OK; } 输出函数 Status OutputOSMatrix(TSMatrix M) { printf(H\n\n 原稀疏矩阵\n; printf(行数、列数、元素总数\n %d %d %d\n\n, M.mu, M.nu, M.tu); phntf( \nH); for (int t = 1; t = M.tu; ++t) printfC1 %d%d printfC1 %d %d %d\nH, M.data[t].i, M.data[t].j, M.data[t].e); } 输出原矩阵和转置函数 Status OutputTSMatrix(TSMatrix M,TSMatrix T) {pri ntf (\n\n 原稀疏矩阵printf {pri ntf (\n\n 原稀疏矩阵 printf(行数、列数、元素总数 \n %d %d %d T.nu, T.tu); printf( 值 for (int t = 1; t = T.tu; ++t) 行数、列数、元素总数 %d %d %d\n\n, M.mu, M.nu, M.tu, T.mu, printf(H %d %d %d%d%d printf(H %d %d %d %d %d M.data[t].j, M
显示全部
相似文档