对称矩阵的压缩存储及基本运算
贺老师的慕课当中,给我们拓展了这样的知识。

所以,本次的项目实践要求如下:
用压缩形式存储对称矩阵,实现下面的操作并测试
void 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[]); //销毁存储空间

实现的源代码如下:
#include <stdio.h>
#include <malloc.h>
#define N 4//为N阶对称矩阵初始化存储数据的一维数组B
void Init(int *&b)
{b = (int*)malloc(sizeof(int)*(N*(N+1)/2));
}//返回存储在b[M]中,对应二维数组A[i][j]的值
int Value(int b[], int i, int j)
{if (i>=j)return b[(i*(i+1))/2+j];elsereturn b[(j*(j+1))/2+i];
}//将e赋值给对应二维数组元素A[i][j],要存储到B[M]中
void Assign(int b[], int e, int i, int j)
{if (i>=j)b[(i*(i+1))/2+j] = e;elseb[(j*(j+1))/2+i] = e;return;
}//输出压缩存储在b中的对称矩阵
void Disp(int 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;
}
运行结果截图如下:


数据结构上机实践第八周项目7—对称矩阵的压缩存储及基本运算相关推荐

  1. 数据结构上机实践第八周项目8-稀疏矩阵的三元组表示的实现及应用

    稀疏矩阵的三元组表示的实现及应用 在现代社会中,在一个大量的人群集体中,总会有和某个人有相互之间的关系或者单向关系的,那我们的矩阵也是如此,稀疏矩阵压缩存储的方式,便可以让这种关系一目了然,巧妙应用. ...

  2. 数据结构上机实践第八周项目9-广义表算法库及应用

    广义表算法库及应用 为了丰富算法库,以应对各类工程的需要,本次实践将进行广义表算法库的建立以及应用. 项目要求一: 建立广义表算法库,包括:  ① 头文glist.h,定义数据类型,声明函数:  ② ...

  3. 数据结构上机实践第八周项目2- 建立链串的算法库

    建立链串的算法库 一般每一种数据结构都不会局限于在连续空间内的存取,那我们的串自然也不反常,本次实践将建立链串的算法库,应用于有需求的工程当中,提高程序的容错性. 本次实践依然会用到多文件组织工程的建 ...

  4. 数据结构上机实践第八周项目6- 猴子选大王(数组版)

    猴子选大王(数组版) 在之前的项目中,实现了猴子选大王的项目要求,本次实践,将再次实现这个项目,但是运用数组的方法,做到一题多解,集思广益. 项目要求如下:一群猴子,编号是1,2,3 -m,这群猴子( ...

  5. 数据结构上机实践第八周项目5 - 计数的模式匹配

    计数的模式匹配 模式匹配在生活中运用广泛,日常所见的指纹识别,人脸识别......无一不用到模式匹配,为了体现模式匹配的基本思想,本次实践将实现简单的字符串的计数模式匹配. 项目要求如下:采用顺序结构 ...

  6. 数据结构上机实践第八周项目4-字符串加密

    字符串加密 密码在我们的生活中很常见,现在的加密算法最常用的是MD5和SHA512散列式算法,最早的密码加密方式很简单,容易被破译,但是却引领信息安全的潮流,本次实践,将实现最早的字符串加密方式,采用 ...

  7. 数据结构上机实践第八周项目3-顺序串算法

    顺序串算法 本次实践项目要求如下: 采用顺序存储方式存储串,实现下列算法并测试:  (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:  void Trans(SqString * ...

  8. 数据结构上机实践第八周项目1- 建立顺序串的算法库

    建立顺序串的算法库 本次实践将建立顺序串的算法库,这样可以方便的将此算法运用于我们的所需的工程中,简化操作. 本次实践将用到多文件组织工程的建立,建立方法可以点击此处参照.(工程环境:Visual C ...

  9. 第八周实践项目7 对称矩阵的压缩存储及基本运算

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目7- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...

最新文章

  1. java中的递归算法_java中的递归算法
  2. [导入]关于怎样通过xslt向.NET扩展函数传递OuterXml属性
  3. 程序运行依赖的重要文件版本不对_Deno核心模块:灵活依赖amp;安全沙箱
  4. OC中的字符串常用方法
  5. java jdbc pr_Java JDBC学习笔记
  6. 装饰画必备素材——装饰设计师,填充不用愁!
  7. win10与手机局域网内快速传输文件(免安装软件)
  8. 您知道这是什么的,对吧!
  9. 教你解决PC微信“版本过低”无法登陆的问题
  10. 手机 SMS PDU 格式参考手册
  11. Ubuntu 笔记本合上盖子时,不进入休眠
  12. 当python遇上echarts (三)绘制3D图表
  13. Scrum在大型游戏团队中的应用
  14. Java多线程——notify()与notifyAll()的区别
  15. 数据库表赋权给指定用户
  16. python股票接口_小小- python用雅虎财经(yahoo)接口写简易爬虫获取A股上证所有股票(可以单独选择个股)历史数据...
  17. 计算机组织电脑义诊是什么,计科院计算机协会开展电脑义诊活动
  18. 电大计算机基础上机考试题库,中央电大计算机基础考试题库大全
  19. html线条属性代码,html 关于线的代码~
  20. C/C++中内存区域划分大总结

热门文章

  1. CSMA协议:改进的ALOHA协议
  2. bzoj 1069: [SCOI2007]最大土地面积(旋转卡壳)
  3. 适合于图像处理方向的SCI期刊杂志列表【转】
  4. C++ STL 堆(heap)的初始化及其正确使用
  5. rand(m,n) 续行
  6. 【python基础语法】range() 序列类型range
  7. RocketMQ——角色与术语详解
  8. python3.6 +tkinter GUI编程 实现界面化的文本处理工具
  9. 设计模式——代理模式与装饰模式的异同
  10. 【转】探秘Java中的String、StringBuilder以及StringBuffer