2015年大二上-数据结构-数组与广义表(2)-4.下三角矩阵的压缩存储及基本运算
2015-12-16 18:43
288 查看
/* *Copyright (c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:Annpion.cpp *作者:王耀鹏 *完成日期:2015年12月16日 *版本号:v1.0 * *问题描述:下三角矩阵的压缩存储及基本运算 *输入描述:输入第n行的n个数 *输出描述:输出下三角矩阵 */ #include <stdio.h> #include <malloc.h> #define N 4 void Init(int *&b)//为N阶对称矩阵初始化存储数据的一维数组B { b= (int *)malloc(sizeof(int )*(N*(N+1)/2+1)); } int Value(int b[], int i, int j)//返回存储在b[M]中,对应二维数组A[i][j]的值 { if(j>i) return 0; else return b[i*(i+1)/2+j]; } void Assign(int b[], int e, int i, int j)//将e赋值给对应二维数组元素A[i][j],要存储到B[M]中 { if(j>i) b[N*(N+1)/2]=e; else b[i*(i+1)/2+j]=e; } void Disp(int b[])//输出压缩存储在b中的对称矩阵 { for(int i=0;i<N;++i) { for(int 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; }
运行结果:
相关文章推荐
- 2015年大二上-数据结构-数组与广义表(2)-3.上三角矩阵的压缩存储及基本运算
- 一、redis 数据结构使用场景
- Redis学习笔记~Redis提供的五种数据结构
- 软考数据库-数据结构
- 数据结构期末总结——既然选择了远方 便只顾风雨兼程
- 基础数据结构之数组与链表(一)
- 数据结构
- .Net数据结构:DictionaryBase DictionaryEntry Hashtable
- Java数据结构——LinkedList源码简介
- JavaScript(4) - JS数据结构和算法 1
- 数据结构(C语言)全程更新第一版震撼来袭
- 树状数组学习笔记
- 数据结构与算法
- 数据结构和算法经典100题-第21题
- 数据结构C++语言描述专题系列 (五) 递归
- 直接插入排序,快速排序,选择排序给学生成绩排名
- 数据结构 上机测试题 汇总
- <LeetCode OJ> (1 / 15 / 16 / 18) NSum问题集合
- MySQL索引背后的数据结构及算法原理
- MySQL索引背后的数据结构及算法原理