Род Стивенс

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

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

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

List := new_array;

// Вычисление значения ShrinkWhen. Размер массива изменяется, если он // уменьшается до значения NumItems<ShrinkWhen,

ShrinkWhen. := Numltems-want_free;

end;

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

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

Numltems : Integer;

ShrinkWhen : Integer;

// Количество используемых элементов. // Уменьшение массива если // NumItems<ShrinkWhen.

procedure ResizeList; const

WANT_FREE_PERCENT=0.1; MIN_FREE=10;

// Установка 10% неиспользуемого размера.

// Минимальный размер неиспользуемого // объема массива при изменении II размера массива.

var

want_free, new_size, i : Integer; new_array : PIntArray;

begin

// Какого размера должен быть массив.

want_free := Round(WANT_FREE_PERCENT*Length(List));

if (want_free<MIN_FREE) then want_free := MIN_FREE;

new_size := Length(List) +want_free;

// Изменение размера массива.

SetLength(List, new_size);

// Вычисление значения ShrinkWhen. Размер массива изменяется, если он // уменьшается до значения Length (List) <ShrinkWhen.

ShrinkWhen := Length(List)-want_fгее; end;

Класс SimpleList

Чтобы использовать изложенную выше стратегию, программе необходимо знать все параметры списка, следить за размером массива, числом используемых в настоящее время элементов и т.д. Если понадобится создавать несколько спис­ков, то нужно многократно копировать все переменные и дублировать код, управ­ляющий различными массивами.

Классы Delphi значительно упрощают эту задачу. Класс TSimpleList инкап­сулирует структуру списков, облегчая управление ими. У этого класса есть мето­ды Add и Remove Last, используемые в основной программе.

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

Страницы раздела: 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.