#ifndef TRIDIAGONALMATRIX_H
#define TRIDIAGONALMATRIX_H
#include "matrixIndexOutOfBounds.h"
template<class T>
class tridiagonalMatrix
{
public:
tridiagonalMatrix(int theN = 10);
~tridiagonalMatrix() {delete [] element;}
T get(int, int) const;
void set(int, int, const T&);
private:
int n; // 矩阵维数
T *element; // 数组 elelment
};
// 程序 7-11
template<typename T>
T tridiagonalMatrix<T>::get(int i, int j) const
{// 返回矩阵中(i, j)位置上的元素
// 检验 i 和 j 的值是否有效
if (i < 1 || j < 1 || i > n || j > n)
throw matrixIndexOutOfBounds();
// 确定要返回的元素
switch (i - j)
{
case 1: // 下对角线
return element[i - 2];
break;
case 0: // 主对角线
return element[n + i - 2];
break;
case -1: // 上对角线
return element[2 * n + 1 - 2];
break;
default:
return 0;
}
}
数据结构-7-10 类 tridiagonalMatrix
最新推荐文章于 2024-10-01 05:07:35 发布