Объектно-ориентированное программирование на C++. Андрианова А.А - 172 стр.

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
n = ob.n;
count = ob.count;
if (ob.head == NULL)
{
head = NULL;
return *this;
}
ListElement* current = ob.head->next;
ListElement* current1;
head = new ListElement(ob.head->a.i, ob.head->a.j,
ob.head->a.value);
head -> next = NULL;
current1 = head;
while(current != NULL)
{
current1 -> next = new ListElement(current->a.i,
current->a.j, current->a.value);
current1 = current1->next;
current = current->next;
}
return *this;
}
// метод уничтожения списка
void MatrixList::DestroyList()
{
ListElement* current = head, * help;
while(current != NULL)
{
help = current->next;
delete current;
current = help;
}
}
// деструктор матрицы
MatrixList::~MatrixList()
{
DestroyList();
}
Для эффективного выполнения ряда операций над разреженными
матрицами удобно хранить ее элементы, упорядоченными
лексикографическим образом по номерам строк и столбцов. Такое
представление однозначно определяет место каждого элемента в списке,
что позволяет упростить процедуру поиска элемента, находящегося в
заданной позиции матрицы. Поиск элемента матрицы, расположенного в
172
                               Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
          n = ob.n;
          count = ob.count;
          if (ob.head == NULL)
          {
               head = NULL;
               return *this;
          }
          ListElement* current = ob.head->next;
          ListElement* current1;
          head = new ListElement(ob.head->a.i, ob.head->a.j,
                                          ob.head->a.value);
          head -> next = NULL;
          current1 = head;
          while(current != NULL)
          {
               current1 -> next = new ListElement(current->a.i,
                              current->a.j, current->a.value);
               current1 = current1->next;
               current = current->next;
          }
          return *this;
      }

      // метод уничтожения списка
      void MatrixList::DestroyList()
      {
           ListElement* current = head, * help;
           while(current != NULL)
           {
                help = current->next;
                delete current;
                current = help;
           }
      }

      // деструктор матрицы
      MatrixList::~MatrixList()
      {
           DestroyList();
      }

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

172