数据结构--数组--三角矩阵的建立

以主对角线划分,三角矩阵有上三角矩阵和下三角矩阵两种。
 ①上三角矩阵

  如下图所示,它的下三角(不包括主角线)中的元素均为常数c。

        数据结构--数组--三角矩阵的建立_第1张图片

 ②下三角矩阵

  与上三角矩阵相反,它的主对角线上方均为常数c,如下图所示。

          数据结构--数组--三角矩阵的建立_第2张图片

以按行为主序的原则转存为一维数组T[k]中,则A[i,j]的对应关系为 k=i*(i+1)/2+j;

#include "stdio.h"
#define n 4
int t[n*n/2];
void Store(int x, int i, int j)
{/* 把x 存为L ( i , j ) */ 
	if (i<0||j<0||i>=n||j>=n)
	{
		printf("数组出界!");
		exit(1);
	}
	/* 当且仅当i ≥ j 时(i,j) 位于下三角*/ 
	if (i >= j)
		t[i*(i+1)/2+j] = x;
	else if (x != 0)
	{
		printf("非对角线上元素值必须为零");
		exit(1);
	}
}
void main()
{
	int i,j;
	int D[n][n]={2,0,0,0,5,1,0,0,0,3,1,0,4,2,7,0};
	for(i=0;i


 

你可能感兴趣的:(c/c++,数据结构及算法)