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

UptoLike

Объектно-ориентированное программирование на С++
delete help;
return;
}
// поиск позиции в списке удаляемого элемента
// и предшествующего ему
prev = head;
current = head->next;
// пропускаем элементы, находящиеся
// в строках с меньшим номером
while(current != NULL && i > current->a.i)
{
current = current->next;
prev = prev->next;
}
if(current != NULL && i == current->a.i)
{
// пропускаем элементы, находящиеся в той же
// строке, но в столбцах с меньшим номером
while(current != NULL && j > current->a.j)
{
current = current->next;
prev = prev->next;
}
// если элемент с заданной позицией найден,
// удаляем его
if(current != NULL && j == current->a.j)
{
prev->next = current->next;
delete current;
}
}
}
// метод получения элемента матрицы с заданными индексами
ListElement* MatrixList::ExistsElement(int i, int j)
{
ListElement* exists = NULL;
ListElement* current = head;
// пропускаем элементы, находящиеся
// до требуемого элемента
while (current != NULL)
{
if (!(current->a.i < i ||
(current->a.i == i && current->a.j < j)))
break;
current = current->next;
}
// если элемент найден, запоминаем в exists его
175
                     Объектно-ориентированное программирование на С++
         delete help;
         return;
    }
    // поиск позиции в списке удаляемого элемента
    // и предшествующего ему
    prev = head;
    current = head->next;
    // пропускаем элементы, находящиеся
    // в строках с меньшим номером
    while(current != NULL && i > current->a.i)
    {
         current = current->next;
         prev = prev->next;
    }
    if(current != NULL && i == current->a.i)
    {
         // пропускаем элементы, находящиеся в той же
         // строке, но в столбцах с меньшим номером
         while(current != NULL && j > current->a.j)
         {
              current = current->next;
              prev = prev->next;
         }
         // если элемент с заданной позицией найден,
         // удаляем его
         if(current != NULL && j == current->a.j)
         {
              prev->next = current->next;
              delete current;
         }
    }
}

// метод получения элемента матрицы с заданными индексами
ListElement* MatrixList::ExistsElement(int i, int j)
{
     ListElement* exists = NULL;
     ListElement* current = head;
     // пропускаем элементы, находящиеся
     // до требуемого элемента
     while (current != NULL)
     {
          if (!(current->a.i < i ||
               (current->a.i == i && current->a.j < j)))
               break;
          current = current->next;
     }
     // если элемент найден, запоминаем в exists его

                                                                  175