2015年大二上-数据结构-数组与广义表(2)-2.压缩存储的对称矩阵的运算
2015-12-14 18:48
615 查看
/* *Copyright (c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:Annpion.cpp *作者:王耀鹏 *完成日期:2015年12月14日 *版本号:v1.0 * *问题描述:设计算法,实现两个用压缩形式存储的对称矩阵A和B的加法和乘法。实现中请使用好前面设计的基本运算。 *输入描述:无 *输出描述:对称矩阵的加法和乘法 */ #include<stdio.h> #include<malloc.h> #define MaxSize 4 #define N 10 void Init(int *&b)//为N阶对称矩阵初始化存储数据的一维数组b { b = (int *)malloc(sizeof(int)*(MaxSize*(MaxSize+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中的对称矩阵 { for(int i=0; i<MaxSize; ++i) { for(int j=0; j<MaxSize; ++j) { printf("%4d ",Value(b,i,j)); } printf("\n"); } } void Destroy(int b[]) //销毁存储空间 { free(b); } void add(int a[],int b[],int c[][MaxSize]) { for(int i=0;i<MaxSize;++i) { for(int j=0;j<MaxSize;++j) c[i][j]=Value(a,i,j)+Value(b,i,j); } } void mult(int a[],int b[],int c[][MaxSize]) { int s; for(int i=0;i<MaxSize;++i) { for(int j=0;j<MaxSize;++j) { s=0; for(int k=0;k<MaxSize;++k) s+=Value(a,i,k)*Value(b,k,j); c[i][j]=s; } } } void Disp1(int c[][MaxSize]) { for(int i=0;i<MaxSize;++i) { for(int j=0;j<MaxSize;++j) { printf("%4d ",c[i][j]); } printf("\n"); } } int main() { int a = {1,2,3,4,5,6,7,8,9,10}; //a表示压缩存储的对称矩阵 int b = {1,1,1,1,1,1,1,1,1,1}; int c1[MaxSize][MaxSize],c2[MaxSize][MaxSize]; add(a,b,c1); mult(a,b,c2); printf("a矩阵:\n"); Disp(a); printf("b矩阵:\n"); Disp(b); printf("a+b:\n"); Disp1(c1); printf("a×b:\n"); Disp1(c2); printf("\n"); return 0; }
运行结果:
相关文章推荐
- 《数据结构》重点概念复习
- 2015年大二上-数据结构-数组与广义表(2)-1.对称矩阵的压缩存储及基本运算
- 线性表
- 一步步写平衡二叉树(AVL树)
- 第十三周--数据结构- Floyd算法验证
- 第15周SHH数据结构-【项目1-验证算法】
- 第14周SHH数据结构-【项目1-(3)验证二叉排序树相关算法】
- 第14周SHH数据结构-【项目3-是否二叉排序树?】
- 第14周SHH数据结构-【项目2-二叉树排序树中查找的路径】
- 第14周SHH数据结构-【项目1-(2)验证分块查找算法】
- 【项目3- 归并排序算法的改进】
- 第14周SHH数据结构-【 项目1-(1)验证折半查找算法 】
- 第9周SHH数据结构-【项目4-广义表算法库及应用(2)】
- 【项目4 - 英文单词的基数排序】
- *第十六周*数据结构实践项目二【大数据集上排序算法性能的体验】
- 第9周SHH数据结构-【项目4-广义表算法库及应用(1)】
- 项目1.6 基数排序
- 第9周SHH数据结构-【项目3-稀疏矩阵的三元组表示的实现及应用(2)】
- 项目1.5 归并排序
- 项目1.4 堆排序