第九周项目2-对称矩阵压缩存储的实现与应用(1)
来源:互联网 发布:闽江网络教学平台 编辑:程序博客网 时间:2024/06/06 13:19
问题及代码:
/*copyright (t) 2016,烟台大学计算机学院*All rights reserved.*文件名称:1.cpp*作者:常锐*完成日期:2016年10月27日*版本号:v1.0*问题描述:用压缩形式存储对称矩阵,实现下面的操作并测试 void Init(int *&b); //为N阶对称矩阵初始化存储数据的一维数组B int Value(int b[], int i, int j); //返回存储在b[M]中,对应二维数组A[i][j]的值 void Assign(int b[], int e, int i, int j); //将e赋值给对应二维数组元素A[i][j],要存储到B[M]中 void Disp(int b[]); //输出压缩存储在b中的对称矩阵 void Destroy(int b[]); //销毁存储空间*输入描述:矩阵下三角部分*程序输出:对称矩阵*/
matrix.h:
#include <stdio.h>#include <malloc.h>#define N 4 //定义矩阵阶数为4void Init(int *&b); //为N阶对称矩阵初始化存储数据的一维数组Bint Value(int b[], int i, int j); //返回存储在b[M]中,对应二维数组A[i][j]的值void Assign(int b[], int e, int i, int j); //将e赋值给对应二维数组元素A[i][j],要存储到B[M]中void Disp(int b[]); //输出压缩存储在b中的对称矩阵void Destroy(int b[]); //销毁存储空间
matrix.cpp:
#include "matrix.h"void Init(int *&b) //为N阶对称矩阵初始化存储数据的一维数组B{ b=(int *)malloc(sizeof(int)*(N*(N+1)/2));}int Value(int b[], int i, int j) //返回存储在b[M]中,对应二维数组A[i][j]的值{ if(i>=j) return b[(i*(i+1))/2+j]; else return b[(j*(j+1))/2+i];}void Assign(int b[], int e, int i, int j) //将e赋值给对应二维数组元素A[i][j],要存储到B[M]中{ if(i>=j) b[i*(i+1)/2+j]=e; else b[j*(j+1)/2+i]=e; return;}void Disp(int b[]) //输出压缩存储在b中的对称矩阵{ int i,j; for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%4d",Value(b,i,j)); printf("\n"); }}void Destroy(int b[]) //销毁存储空间{ free(b);}
main.cpp:
#include <stdio.h>#include "matrix.h"int main(){ int *b1; int i,j,num; Init(b1); while(1) { printf("请输入对称矩阵(只需要输入下三角部分即可):\n"); for(i=0;i<N;i++) { printf("输入第%d行的%d个数据元素",i+1,i+1); for(j=0;j<=i;j++) { scanf("%d",&num); Assign(b1,num,i,j); } } Disp(b1); Destroy(b1); printf("\n"); } return 0;}
运行结果:
知识点总结:
对称矩阵压缩存储的基本运算的实现
心得体会:
通过此项目,结合建立算法库的知识,我加深了对对称矩阵概念及基本运算的理解,同时又不局限于C/C++的做法,运用数据结构的知识,将基本运算”一般化“,能广泛的用在各种语言中。
0 0
- 第九周项目(2):对称矩阵压缩存储的实现与应用(1)
- (第九周项目2)对称矩阵压缩存储的实现与应用(1)
- 第九周项目2——对称矩阵压缩存储的实现与应用(1)
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- 第九周项目2 —对称矩阵压缩存储的实现与应用(1)
- 第九周 项目2-对称矩阵压缩存储的实现与应用(1)
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- 第九周项目2对称矩阵压缩存储的实现与应用(1)
- 第九周实践项目2—对称矩阵压缩存储的实现与应用(1)
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- 第九周 项目2-对称矩阵压缩存储的实现与应用(1)
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- 第九周 项目2 对称矩阵压缩存储的实现与应用(1)
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- 1042 字符统计
- 6.nginx源码分析之数据结构:ngx_pool_t
- js地址栏加密传参
- Android偏好设置SharedPreference你不知道的秘密
- 数据结构实验之二叉树一:树的同构数据结构实验之二叉树一:树的同构 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem D
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- 【第九周项目3-稀疏矩阵的三元组表示的实现及应用(2)】
- 6个在线正则表达式工具
- 第八周项目5 计数的模式匹配
- 【第九周 项目3-稀疏矩阵的三元组表示的实现及应用(1)】
- 黑马程序员:Java学习路线图上线了
- Spring mvc环境下web项目配置ajax跨域访问
- kintex DDR3 设计注意事项
- 戴上帽子