PureBasic


PureBasic - List (Связный Список)

Обзор

Связный Список (далее "Список") - это динамическая структура данных в виде последовательности однотипных элементов (называемых элементами Списка), связанных друг с другом посредством указателей. В Purebasic реализован так называемый "Двусвязный Список". Каждый элемент такого Списка содержит поле для хранения данных (аналог переменной), а также указатели на следующий и предыдущий элементы этого Списка.
Так как просмотр Списка в обе стороны осуществляется по указателям, элементы Списка физически могут находиться в памяти не по порядку, поэтому удаление любого элемента или вставка нового элемента в любую позицию происходят очень быстро. Это ключевое преимущество Списка перед Массивом, в то же время, скорость доступа к произвольному элементу значительно ниже и зависит от общего количества элементов в Списке, к тому же каждый элемент Списка занимает больше памяти.

Перед началом работы со Списком, его необходимо объявить с помощью ключевого слова NewList, при этом для него можно выбрать любой базовый или Структурный тип. Только что созданный Список не содержит ни одного элемента, но во время работы программы можно добавить любое их количество, поскольку при вставке/удалении элементов используется динамическое распределение памяти.
Списки могут быть отсортированы, с помощью команд SortList() или SortStructuredList(), и наоборот перемешаны в произвольном порядке с помощью команды RandomizeList().
Для поиска конкретного содержимого Списка рекомендуется использовать циклы: For : Next, ForEach : Next, Repeat : Until или While : Wend.

Другие варианты для хранения и обработки множества данных - это использование Массивов и Хеш-Карт, они предоставляют иные возможности.

Список команд

AddElement
ChangeCurrentElement
ClearList
CopyList
CountList (устаревший)
DeleteElement
FirstElement
FreeList
InsertElement
LastElement
ListIndex
ListSize
MergeLists
MoveElement
NextElement
PopListPosition
PreviousElement
PushListPosition
ResetList
SelectElement
SplitList
SwapElements

Сортировка и подобное

SortList()
SortStructuredList()
RandomizeList()

Пример

List.pb

Поддерживаемые OS

Все

Справочное руководство - оглавление