对称矩阵的压缩存储及基本运算

对称矩阵的压缩存储及基本运算_第1张图片

问题及代码:

/*  
* Copyright (c) 2015, 烟台大学计算机与控制工程学院  
* All rights reserved.  
* 文件名称: main.cpp 
* 作者:高哲 
* 完成日期:2015年12月13日  
* 版本号:codeblocks   
* 问题描述:  用压缩形式存储对称矩阵,实现下面的操作并测试 
* 输入描述: 输入对称矩阵(只需要输入下三角部分即可) 
* 程序输出: 见运行结果  
*/   
#include  
#include   
#define N 4  
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[]); //销毁存储空间  
int main()  
{  
    int *b1;  //指向整型的指针,待初始化  
    int i, j;  
    int v;  
    Init(b1);  
    printf("请输入对称矩阵(只需要输入下三角部分即可)\n");  
    for(i=0;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)  
{  
    if (i>=j)  
        b[(i*(i+1))/2+j] = e;  
    else  
        b[(j*(j+1))/2+i] = e;  
    return;  
}  
void Disp(int b[])  
{  
    int i,j;  
    for (i=0; i

知识点总结:

本题目是用压缩形式存储对称矩阵,即b【0】【1】=b【1】【0】,考查了实现对称矩阵的基本运算。


 

你可能感兴趣的:(对称矩阵的压缩存储及基本运算)