ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »