Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 84 стр.

UptoLike

83
// свойство получения и установки значения элемента
public double Value
{
get { return val; }
set { val = value; }
}
}
Разреженная матрица реализуется как отдельный класс, включающий в
себя список элементов матрицы – объектов класса MatrixElement.
class MatrixList
{
// список элементов матрицы
List<MatrixElement> list;
// размеры матрицы
int m,n;
// количество ненулевых элементов матрицы
int count;
// конструктор разреженной матрицы из нулевых элементов
public MatrixList(int m1, int n1)
{
m = m1;
n = n1;
list = new List<MatrixElement>();
count = 0;
}
. . .
}
Для эффективного выполнения ряда операций над разреженными
матрицами удобно хранить ее элементы, упорядоченными
лексикографическим образом по номерам строк и столбцов. Такое
представление однозначно определяет место каждого элемента в списке, что
позволяет упростить процедуру поиска элемента, находящегося в заданной
позиции матрицы. Поиск элемента матрицы, расположенного в i-ой строке и
j-ом столбце заключается в том, что при просмотре списка пропускаются все
элементы, расположенные в строках с меньшим номером, чем i, а затем в
заданной строке, но в столбцах с меньшим номером, чем j. Такая процедура
поиска используется в индексаторе, осуществляющем доступ к элементу
матрицы и в других методах класса MatrixList.
         // свойство получения и установки значения элемента
         public double Value
         {
            get { return val; }
            set { val = value; }
         }
     }

      Разреженная матрица реализуется как отдельный класс, включающий в
себя список элементов матрицы – объектов класса MatrixElement.

     class MatrixList
     {
        // список элементов матрицы
        List list;
        // размеры матрицы
        int m,n;
        // количество ненулевых элементов матрицы
        int count;

         // конструктор разреженной матрицы из нулевых элементов
         public MatrixList(int m1, int n1)
         {
            m = m1;
            n = n1;
            list = new List();
            count = 0;
         }
         . . .
     }

     Для эффективного выполнения ряда операций над разреженными
матрицами      удобно     хранить     ее    элементы,     упорядоченными
лексикографическим образом по номерам строк и столбцов. Такое
представление однозначно определяет место каждого элемента в списке, что
позволяет упростить процедуру поиска элемента, находящегося в заданной
позиции матрицы. Поиск элемента матрицы, расположенного в i-ой строке и
j-ом столбце заключается в том, что при просмотре списка пропускаются все
элементы, расположенные в строках с меньшим номером, чем i, а затем – в
заданной строке, но в столбцах с меньшим номером, чем j. Такая процедура
поиска используется в индексаторе, осуществляющем доступ к элементу
матрицы и в других методах класса MatrixList.




83