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

UptoLike

81
6.2. Использование списков для хранения
разреженных матриц
Классы, реализующие работу со списками (ArrayList или List<>),
являются самыми распространенными классами-коллекциями, которые
используются в приложениях. Они позволяют создавать линейный массив
данных, который может легко менять свой размер путем добавления в него
новых элементов или удаления из него существующих. Для списков
реализован индексатор, который позволяет обращаться к элементам списка
по индексу, как в массиве, что делает удобным обращение с его элементами.
Основные свойства и методы классов-списков таковы:
Count свойство, которое задает количество элементов в
списке;
Add(object) метод добавления объекта в конец списка;
Clear() удаление всех элементов из списка;
Contains(object) определение, присутствует ли заданный
элемент в списке;
IndexOf(object), LastIndexOf(object) метод,
который возвращает номер первого или последнего вхождения
заданного элемента в список;
Insert(int, object) метод вставки элемента в список на
заданную позицию;
Remove(object) метод удаления заданного элемента из
списка;
RemoveAt(int) метод удаления элемента списка,
находящегося на заданной позиции;
и т.д., в том числе и методы поиска, сортировки, реверса
элементов и прочие методы.
В качестве примера, использующего динамический список, приведем
класс работы с разреженными матрицами.
Разреженной называется матрица, которая содержит большое
количество нулевых элементов. Такие матрицы нередко возникают в задачах
линейной алгебры, математической физики и оптимизации. Хранение этих
матриц традиционным способом требует существенных затрат памяти.
Особенно это неэффективно при больших размерах матрицы и большом
             6.2. Использование списков для хранения
                                 разреженных матриц

     Классы, реализующие работу со списками (ArrayList или List<>),
являются самыми распространенными классами-коллекциями, которые
используются в приложениях. Они позволяют создавать линейный массив
данных, который может легко менять свой размер путем добавления в него
новых элементов или удаления из него существующих. Для списков
реализован индексатор, который позволяет обращаться к элементам списка
по индексу, как в массиве, что делает удобным обращение с его элементами.
     Основные свойства и методы классов-списков таковы:
         Count – свойство, которое задает количество элементов в
           списке;
         Add(object) – метод добавления объекта в конец списка;
         Clear() – удаление всех элементов из списка;
         Contains(object) – определение, присутствует ли заданный
           элемент в списке;
         IndexOf(object), LastIndexOf(object) – метод,
           который возвращает номер первого или последнего вхождения
           заданного элемента в список;
         Insert(int, object) – метод вставки элемента в список на
           заданную позицию;
         Remove(object) – метод удаления заданного элемента из
           списка;
         RemoveAt(int) – метод удаления элемента списка,
           находящегося на заданной позиции;
         и т.д., в том числе и методы поиска, сортировки, реверса
           элементов и прочие методы.

     В качестве примера, использующего динамический список, приведем
класс работы с разреженными матрицами.
     Разреженной называется матрица, которая содержит большое
количество нулевых элементов. Такие матрицы нередко возникают в задачах
линейной алгебры, математической физики и оптимизации. Хранение этих
матриц традиционным способом требует существенных затрат памяти.
Особенно это неэффективно при больших размерах матрицы и большом

81