ВУЗ:
Составители:
Рубрика:
85
if (index < count && i == list[index].I)
{
// пропускаем элементы, находящиеся в той же
// строке, но в столбцах с меньшим номером
while (index < count && i == list[index].I &&
j > list[index].J)
index++;
}
// если элемент в заданной позиции уже
// имеется, изменяем его значение
if (index < count && i == list[index].I &&
j == list[index].J)
{
list[index].Value = value;
insert = true;
}
// если элемента с такими индексами в списке не было,
// вставляем новый элемент в список
if (!insert)
{
MatrixElement element =
new MatrixElement(i, j, value);
list.Insert(index, element);
count++;
}
}
else
// генерация исключения в случае
// некорректной позиции вставляемого элемента
throw new BadIndexException(m, n);
}
}
Аналогичный подход к поиску элемента в списке используется в
методах удаления заданного элемента, проверки существования элемента в
списке и в операции получения строкового представления матрицы.
// метод удаления элемента из списка
void DeleteElement(int i, int j)
{
// список пуст, следовательно, матрица состоит только из нулей
if(count == 0)
return;
// поиск позиции в списке удаляемого элемента
int index = 0;
// пропускаем элементы, находящиеся
// в строках с меньшим номером
while (index < count && i > list[index].I)
index++;
if (index < count && i == list[index].I)
{
// пропускаем элементы, находящиеся в той же
// строке, но в столбцах с меньшим номером
while (index < count && i == list[index].I &&
j > list[index].J)
index++;
}
// если элемент в заданной позиции уже
// имеется, изменяем его значение
if (index < count && i == list[index].I &&
j == list[index].J)
{
list[index].Value = value;
insert = true;
}
// если элемента с такими индексами в списке не было,
// вставляем новый элемент в список
if (!insert)
{
MatrixElement element =
new MatrixElement(i, j, value);
list.Insert(index, element);
count++;
}
}
else
// генерация исключения в случае
// некорректной позиции вставляемого элемента
throw new BadIndexException(m, n);
}
}
Аналогичный подход к поиску элемента в списке используется в
методах удаления заданного элемента, проверки существования элемента в
списке и в операции получения строкового представления матрицы.
// метод удаления элемента из списка
void DeleteElement(int i, int j)
{
// список пуст, следовательно, матрица состоит только из нулей
if(count == 0)
return;
// поиск позиции в списке удаляемого элемента
int index = 0;
// пропускаем элементы, находящиеся
// в строках с меньшим номером
while (index < count && i > list[index].I)
index++;
85
Страницы
- « первая
- ‹ предыдущая
- …
- 84
- 85
- 86
- 87
- 88
- …
- следующая ›
- последняя »
