java定义上三角矩阵,数据结构-矩阵-三角矩阵(Java语言)

详细的代码可见github:

https://github.com/AbitGo/myClassWork/tree/master/workspace_ds

三角矩阵是方形矩阵的一种,因其非零系数的排列呈三角形状而得名。三角矩阵分上三角矩阵和下三角矩阵两种。上三角矩阵的对角线左下方的系数全部为零,下三角矩阵的对角线右上方的系数全部为零。三角矩阵可以看做是一般方阵的一种简化情形。比如,由于带三角矩阵的矩阵方程容易求解,在解多元线性方程组时,总是将其系数矩阵通过初等变换化为三角矩阵来求解;又如三角矩阵的行列式就是其对角线上元素的乘积,很容易计算。有鉴于此,在数值分析等分支中三角矩阵十分重要。一个所有顺序主子式不为零的可逆矩阵A可以通过LU分解变成一个单位下三角矩阵L与一个上三角矩阵U的乘积。

具体实现类:

package com.company.ch5;

public class HuffmanTree {

public int[][] huffmanfiCoding(int[] w){

//字符个数

int n = w.length;

//结点数

int m = 2*n -1;

HuffmanNode[] HN = new HuffmanNode[m];

int i;

for(i = 0;i

测试类:

package com.company.ch4.Matrix;

public class TriangularMatrixTest {

public static void main(String[] args) {

System.out.println("上三角矩形");

TriangularMatrix triangularMatrix1 = new TriangularMatrix(8,true,99);

triangularMatrix1.autoGenerate();

triangularMatrix1.disPlay();

System.out.println("下三角矩形");

TriangularMatrix triangularMatrix2 = new TriangularMatrix(8,false,88);

triangularMatrix2.autoGenerate();

triangularMatrix2.disPlay();

}

}

测试结果:

上三角矩形

991223434

9999234345

99999934564

999999994567

9999999999567

99999999999967

999999999999997

9999999999999999

下三角矩形

088888888888888

12888888888888

2348888888888

345688888888

45678888888

56789108888

678910111288

7891011121314

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
三角矩阵是指在矩阵中,下三角(包括对角线)的元素均为零。下面是一个基于C++的上三角矩阵定义: ```cpp #include<iostream> using namespace std; class UpperTriangularMatrix { private: int *A; // 存储上三角矩阵元素的数组 int n; // 上三角矩阵的大小 public: UpperTriangularMatrix(int n) { this->n = n; A = new int[n*(n+1)/2]; } ~UpperTriangularMatrix() { delete []A; } void set(int i, int j, int x); int get(int i, int j); void display(); }; // 将上三角矩阵的元素存储到数组中 void UpperTriangularMatrix::set(int i, int j, int x) { if(i <= j) { A[(i-1)*n - (i-2)*(i-1)/2 + j-i] = x; } } // 获取上三角矩阵的元素 int UpperTriangularMatrix::get(int i, int j) { if(i <= j) { return A[(i-1)*n - (i-2)*(i-1)/2 + j-i]; } return 0; } // 显示上三角矩阵 void UpperTriangularMatrix::display() { for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { if(i <= j) { cout<<A[(i-1)*n - (i-2)*(i-1)/2 + j-i]<<" "; } else { cout<<"0 "; } } cout<<endl; } } int main() { UpperTriangularMatrix m(4); m.set(1,1,1); m.set(1,2,2); m.set(1,3,3); m.set(1,4,4); m.set(2,2,5); m.set(2,3,6); m.set(2,4,7); m.set(3,3,8); m.set(3,4,9); m.set(4,4,10); m.display(); return 0; } ``` 上面的代码定义了一个 `UpperTriangularMatrix` 类,通过数组来存储上三角矩阵的元素。其中,`set` 方法用于设置上三角矩阵中的元素,`get` 方法用于获取上三角矩阵中的元素,`display` 方法用于在终端上打印出上三角矩阵。你可以根据需要修改这些方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值