问题描述:对称矩阵压缩存储的实现与应用。
输入:第n行的第n个数值。
输出:对阵矩阵。
源文件:
#include "head.h"
void Init(int *&b)
{
b=(int *)malloc(sizeof(int)*(N*(N+1)/2));
}
int Value(int b[], int i, int 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)
{
if(i>=j)
b[i*(i+1)/2+j]=e;
else
b[j*(j+1)/2+i]=e;
}
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);
}
头文件:
#ifndef HEAD_H_INCLUDED
#define HEAD_H_INCLUDED
#include<stdio.h>
#define N 4