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

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
{
out << ob.a;
return out;
}
Вывод элементов списка осуществляется в виде матрицы.
ostream& operator << (ostream& out, MatrixList& ob)
{
int i = 0, j = 0;
// цикл просмотра элементов списка
ListElement* current = ob.head;
while(current != NULL)
{
// вывод нулей в качестве элементов
// предшествующих строк
for( ; i < current->a.i; i++)
{
for( ; j < ob.n; j++)
out << "0\t";
out << endl;
j = 0;
}
// вывод нулей в качестве элементов в той же строке,
// но в прешествующих столбцах
for( ;j < current->a.j; j++)
out << "0\t";
// вывод текущего элемента
out << *current << "\t";
// корректировка индексов для просмотра
// следующих элементов
j++;
if(j == ob.n)
{
i++;
j = 0;
out << endl;
}
current = current->next;
}
// вывод нулей в качестве последующих элементов
// строки, в которой расположен
// последний элемент списка
if(j != 0)
{
for( ; j < ob.n; j++)
out << "0\t";
out << endl;
i++;
178
                                Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
      {
            out << ob.a;
            return out;
      }

      Вывод элементов списка осуществляется в виде матрицы.
      ostream& operator << (ostream& out, MatrixList& ob)
      {
            int i = 0, j = 0;
            // цикл просмотра элементов списка
            ListElement* current = ob.head;
            while(current != NULL)
            {
                 // вывод нулей в качестве элементов
                 // предшествующих строк
                 for( ; i < current->a.i; i++)
                 {
                      for( ; j < ob.n; j++)
                           out << "0\t";
                      out << endl;
                      j = 0;
                 }
            // вывод нулей в качестве элементов в той же строке,
            // но в прешествующих столбцах
            for( ;j < current->a.j; j++)
                 out << "0\t";
                 // вывод текущего элемента
                 out << *current << "\t";
                 // корректировка индексов для просмотра
                 // следующих элементов
                 j++;
                 if(j == ob.n)
                 {
                      i++;
                      j = 0;
                      out << endl;
                 }
                 current = current->next;
            }
            // вывод нулей в качестве последующих элементов
            // строки, в которой расположен
            // последний элемент списка
            if(j != 0)
            {
                 for( ; j < ob.n; j++)
                      out << "0\t";
                 out << endl;
                 i++;

178