Род Стивенс

Книги → Delphi. Готовые алгоритмы → Глава 2. Списки

Следующий код показывает применение этого способа для расширения списка:

procedure Addltem(new_item : Integer);

var

new_array : PIntArray;

List : PIntArray; Numltems : Integer; NumAllocated : Integer;

// Массив.

// Количество используемых элементов. // Количество заявленных элементов.

var

i : Integer; begin

// Определение наличия свободных ячеек. if (NumItems>=NumAllocated) then begin

// Создание нового массива.

NumAllocated := NumAllocated+10; GetMem(new_array,NumAllocated*SizeOf(Integer));

// Копирование существующих элементов в новый массИВ. for i := 1 to Numltems do

new. аггаул [i] := List'Hi];

// Освобождение ранее выделенной памяти. if (Numltems>0) then FreeMem(List);

// Установка указателя на новый массив.

List := new_array; end;

// Обновление количества элементов.

Numltems := Numltems+l;

// Сохранение нового элемента. new_arrayA[Numltems] := new_item; end;

Для Delphi, начиная с 4 версии, этот код будет выглядеть следующим образом: var

List : Array Of Integer; // Массив.

Numltems : Integer; // Количество используемых элементов.

procedure Addltem(new_item : Integer);

begin

// Определение наличия свободных ячеек. if (NumItems>=Length(List)) then begin

// Создание нового массива .

SetLength(List, Length(List )+10) end;

// Обновление количества элементов.

Numltems := Numltems+l;

// Сохранение нового элемента.

List[Numltems] := new_item; end;

I. -

Но для очень больших массивов это не самое удачное решение. Если вам ну­жен список из 1000 элементов, к которому обычно добавляется по 100 элементов, на изменение размеров массива будет тратиться слишком много времени. В этом случае лучше всего увеличивать размер массива не на 10, а на 100 или более ячеек.

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

Страницы раздела: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Публикация компанией 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.