第九周项目二 对称矩阵压缩存储的实现与应用(1)
来源:互联网 发布:阿里巴巴传淘宝流程 编辑:程序博客网 时间:2024/06/05 23:00
问题及代码:
/* *烟台大学计算机与控制工程学院 *作 者:孙丽玮 *完成日期:2016年10月27日 *问题描述:用压缩形式存储对称矩阵,实现下面的操作并测试 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[]); //销毁存储空间*/
#include <stdio.h>#include <malloc.h>#define N 4void 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;}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);}int main(){int *b1; //指向整型的指针,待初始化 int i, j; int v; Init(b1); printf("请输入对称矩阵(只需要输入下三角部分即可)\n"); for(i=0;i<N;i++) { printf("输入第%d行的%d个数据元素: ", i+1, i+1); for(j=0; j<=i; j++) { scanf("%d", &v); Assign(b1, v, i, j); } } Disp(b1); Destroy(b1); return 0;}
运行结果:
总结:
利用对称矩阵存储结构只需要写出上三角或下三角部分即可。
对于上三角和下三角矩阵的公式,在理解的基础上记忆。
0 0
- 第九周--项目二--对称矩阵压缩存储的实现与应用(1)
- 第九周--项目二--对称矩阵压缩存储的实现与应用(1)改
- 第九周【项目二-对称矩阵压缩存储的实现与应用(1)】
- 第九周项目二--对称矩阵压缩存储的实现与应用(1)
- 第九周项目二 对称矩阵压缩存储的实现与应用(1)
- 第九周项目二 对称矩阵压缩存储的实现与应用(1)
- 第九周项目二---对称矩阵压缩存储的实现与应用1
- 第九周 项目二 【对称矩阵压缩存储的实现与应用(1)】
- 第九周--项目二--对称矩阵压缩存储的实现与应用(2)
- 第九周 项目二(2) 对称矩阵压缩存储的实现与应用
- 第九周【项目二-对称矩阵压缩存储的实现与应用(2)】
- 第九周 项目二-对称矩阵压缩存储的实现与应用(一)
- 第九周项目二--对称矩阵压缩存储的实现与应用(2)
- 第九周项目二 对称矩阵压缩存储的实现与应用(2)
- 第九周项目(2):对称矩阵压缩存储的实现与应用(1)
- (第九周项目2)对称矩阵压缩存储的实现与应用(1)
- 第九周项目2——对称矩阵压缩存储的实现与应用(1)
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)
- Spring MVC之@RequestMapping 详解
- OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
- 第9周项目2 对称矩阵压缩存储的实现与应用(2)
- 第九周项目1-猴子选大王(数组版)
- apt和dpkg区别
- 第九周项目二 对称矩阵压缩存储的实现与应用(1)
- Unity3D-相机跟随抖动
- 数据货币化
- python带给你的简单实用的http、ftp服务
- php.ini配置详细选项
- 【leetcode】438. Find All Anagrams in a String【E】
- 第八周项目5-计数的模式匹配
- centos配置history记录每个用户执行过的命令
- linux c 创建多级目录函数实现 支持绝对路径和相对路径