Род Стивенс

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

Также в нем присутствует функция Item, которая возвращает значение опре­деленного элемента списка. Она проверяет, чтобы индекс требуемого элемента был

в пределах установленных границ массива. Если это не так, то функция вызывает ошибку диапазона (Out of bounds). При этом происходит остановка программы вместо возникновения неявного сбоя.

Процедура ResizeList объявлена как частная внутри класса TSimpleList. Это скрывает изменение размера списка от основной программы, поскольку код должен функционировать только внутри класса.

С помощью класса TSimpleList в приложениях можно создавать несколько списков. Для построения списка достаточно объявить объект типа TSimpleList и далее использовать метод Create этого класса. Каждый объект имеет свои пере­менные, поэтому любой из них может управлять отдельным списком.

var

Listl, List2 : TSimpleList;

procedure MakeLists;

begin

// Создание объектов TSimpleList.

Listl := TSimpleList.Create;

List2 := TSimpleList .Create;

end;

Программа SimList демонстрирует использование класса TSimpleList. Для того чтобы добавить элемент к списку, укажите значение в поле ввода и шел книге по кнопке Add (Добавить). Объект TSimpleList при необходимости изменяет размеры массива. Если список еще не пуст, удалите последний элемент списка, нажав кнопку Remove (Удалить).

Когда объект TSimpleList изменяет размеры массива, он выводит окно сооб­щения, в котором содержится информация о размере массива, количестве неисполь­зованных элементов в нем и значении переменной ShrinkWhen. Когда число исполь­зованных ячеек массива падает ниже значения ShrinkWhen, программа уменьшает размеры массива. Обратите внимание, что когда массив почти пуст, переменная ShrinkWhen становится равной нулю или отрицательной. В этом случае размер мас­сива не будет уменьшаться, даже если вы удалите из списка все элементы.

Программа SimList прибавляет к массиву 50% пустых ячеек, если необходимо увеличить его размер, но всегда оставляет как минимум одну пустую ячейку. Эти значения были выбраны для удобства работы с программой. В реальных приложе­ниях процент свободной памяти должен быть меньше, а минимальное число сво­бодных ячеек - больше.

Большие значения порядка 10% текущего размера списка и минимум 10 неис­пользуемых записей были бы более приемлемы.

Неупорядоченные списки

В некоторых приложениях требуется удалять одни элементы из середины списка, добавляя другие в его конец. Это может быть в случае, когда порядок эле­ментов не важен, но необходимо иметь возможность удалять определенные эле­менты из списка. Списки данного типа называются неупорядоченными списками (unordered list).

добавление элемента к списку;

удаление элемента из списка;

определение наличия элемента в списке;

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

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