Нормальное индексирование массива типа A(I, J) не будет работать со струк-
турами, описанными выше. Чтобы упростить нумерацию, потребуется написать
процедуры, которые устанавливают и извлекают значения элементов массива.
Если массив представляет собой матрицу, могут также понадобиться процедуры
для сложения, умножения и других матричных операций.
Специальное значение DEFAULT_VALUE соответствует пустому элементу мас-
сива. Процедура, которая извлекает элементы массива, должна возвращать значе-
ние DEFAULT_VALUE при попытке получить значение элемента, не содержащегося
в массиве. Точно так же процедура, которая устанавливает значения элементов, дол-
жна удалять ячейку из массива, если его значение установлено в DEFAULT_VALUE.
Конкретное значение константы DEFAULT_VALUE зависит от природы дан-
ных приложения. Для матрицы смежности авиалинии пустые записи могут иметь
значение False. При этом значение A[i, j] = True, если существует рейс между
городами i HJ.
Функция GetValue класса TSparseArray возвращает значение элемента
массива. Она начинает с первой ячейки в указанной строке и перемещается по свя-
занному списку ячеек строки. Как только найдется ячейка с нужным номером
столбца, это и будет искомая ячейка. Поскольку ячейки в списке расположены по
порядку, процедура может остановиться, если найдется та, номер столбца кото-
рой больше искомого.
Процедура SetValue устанавливает новое значение ячейки. Она исследует
строку в поисках значения столбца большего или равного нужному столбцу.
Если новое значение равно DEFAULT_VALUE, процедура удаляет ячейку из
списка строк. Если ячейка уже существует, процедура обновляет ее значение. В про-
тивном случае она создает новую.
Программа Sparse, окно которой представлено на рис. 4.10, использует класс
TSparseArray для управления разреженным массивом. С ее помощью вы може-
те устанавливать и выбирать записи массива. Значение DEFAULT_VALUE в этой
программе равно пробелу, поэтому если вы установите значение записи в пустую
строку, то программа удалит элемент из массива.
Рис. 4.10. Окно программы Sparse
Опубликовал Kest
October 18 2009 15:05:08 ·
0 Комментариев ·
7726 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.