ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
i-ой строке и j-ом столбце заключается в том, что при просмотре списка
пропускаются все элементы, расположенные в строках с меньшим
номером, чем i, а затем – в заданной строке, но в столбцах с меньшим
номером, чем j. Такая процедура поиска используется в методе
добавления элемента в матрицу AddElement(int i, int j,
double v) для определения места вставки элемента в список, в методе
удаления элемента из списка DeleteElement(int i, int j) и в
методе проверки существования элемента с заданными индексами
ExistsElement(int i, int j).
// метод добавления нового элемента в список –
// используется как метод присвоения
// элементу матрицы конкретного значения
void MatrixList::AddElement(int i, int j, double v)
{
ListElement *current, *help, *prev;
bool insert = false;
// проверка корректности позиции
// вставляемого элемента
if (i < m && j < n)
{
// если новое значение элемента нулевое,
// удаляем элемент из списка
if(v == 0)
{
DeleteElement(i, j);
return;
}
// проверка, вставляется ли элемент
// на первое место
if(head == NULL || i < head->a.i ||
(i == head->a.i && j < head->a.j))
{
// вставка элемента в начало списка
help = new ListElement(i, j, v);
help->next = head;
head = help;
count++;
return;
}
// поиск позиции вставляемого элемента
prev = head;
current = head -> next;
// пропускаем элементы, находящиеся
// в строках с меньшим номером
while(current != NULL && i > current->a.i)
173
Объектно-ориентированное программирование на С++ i-ой строке и j-ом столбце заключается в том, что при просмотре списка пропускаются все элементы, расположенные в строках с меньшим номером, чем i, а затем – в заданной строке, но в столбцах с меньшим номером, чем j. Такая процедура поиска используется в методе добавления элемента в матрицу AddElement(int i, int j, double v) для определения места вставки элемента в список, в методе удаления элемента из списка DeleteElement(int i, int j) и в методе проверки существования элемента с заданными индексами ExistsElement(int i, int j). // метод добавления нового элемента в список – // используется как метод присвоения // элементу матрицы конкретного значения void MatrixList::AddElement(int i, int j, double v) { ListElement *current, *help, *prev; bool insert = false; // проверка корректности позиции // вставляемого элемента if (i < m && j < n) { // если новое значение элемента нулевое, // удаляем элемент из списка if(v == 0) { DeleteElement(i, j); return; } // проверка, вставляется ли элемент // на первое место if(head == NULL || i < head->a.i || (i == head->a.i && j < head->a.j)) { // вставка элемента в начало списка help = new ListElement(i, j, v); help->next = head; head = help; count++; return; } // поиск позиции вставляемого элемента prev = head; current = head -> next; // пропускаем элементы, находящиеся // в строках с меньшим номером while(current != NULL && i > current->a.i) 173
Страницы
- « первая
- ‹ предыдущая
- …
- 171
- 172
- 173
- 174
- 175
- …
- следующая ›
- последняя »