Род Стивенс

Книги → Delphi. Готовые алгоритмы → Глава 4. Массивы

значение False. При этом значение A[i, j] = True, если существует рейс между городами i и j.

Функция GetValue класса TSparseArray возвращает значение элемента массива. Она начинает с первой ячейки в указанной строке и перемещается по свя­занному списку ячеек строки. Как только найдется ячейка с нужным номером столбца, это и будет искомая ячейка. Поскольку ячейки в списке расположены по порядку, процедура может остановиться, если найдется та, номер столбца кото­рой больше искомого.

// Возвращает значение записи массива.

function TSparseArray .GetValue (г, с : Longint) : StringlO; var

cell_ptr : PSparseCell; begin

if {(r<0) or (c<0)) then %

raise ElnvalidOperation.Create(

'Индекс колонки и строки должен быть больше или равен нулю. ');

// Имеется ли метка для данного столбца. if (r>Max_Row) then

GetValue. : = DEFAULT_VALUE ,

else begin -

/ / Нахождение ячейки со значениещ^'Щлбца >= с. cell_ptr := RowSentinelA[г].NextC&lI; while (cell_ptrA.Col<c) do

cell_ptr:= cell_ptrA.NextCell;

//1 Если такая ячейка не найдена, возвращается default_value. if (cell_ptrA.Col=c) then

GetValue := cell_ptr.Value Else

GetValue := DEFAULT_VALUE;

end;

end;

- г-

Процедура SetValue устанавливает новое значение ячейки. Она исследует строку в поисках значения столбца большего или равного нужному столбцу.

Если новое значение равно DEFAULT VALUE, процедура удаляет ячейку из списка строк. Если ячейка уже существует, процедура обновляет ее значение. В про­тивном случае она создает новую.

// Установка значения записи массива.

procedure TSparseArray. SetValue (г, с : Longint; newvalue : StringlO); var

cell_ptr, next_ptr : PSparseCell; i : Longint; new_array : PCellArray; bottom_sentinel : PSparseCell;

begin

if ((r<0) or (c<0)) then

← предыдущая следующая →

Страницы раздела: 1 2 3 4 5 6 7 8 9

Публикация компанией Dropbox кода Zulip – средства общения для IT-разработчиков

20.11.2015
Одной из одобрительно встреченных программистами инициатив, реализующихся в рамках акции Hack Week, стала публикация исходного кода приложения Zulip – веб-приложения для общения между собой разработчиков в сфере IT-технологий.

Объединение ОС Android и Chrome

17.11.2015
Слухи об объединении двух крупнейших ОС компании Google, Android и Chrome, гуляют по Интернету уже более 5 лет, но до сих пор этого не случилось, хотя очевидно, что с течением времени эти ОС становятся всё более похожими: так, в последнее время появилось немало Android-устройств, к которым прилагаются клавиатуры, а Chrome OS «научилась» работать с сенсорными экранами.

Конференция Linux Piter 2015

15.11.2015
Уже почти через неделю в Санкт-Петербурге впервые в истории пройдёт конференция, посвящённая проблемам свободного программного обеспечения – Linux Piter 2015.