Технологии программирования | страница 90



Для достижения высокой по скорости эффективности используют различающиеся алгоритмы сортировки и поиска для работы с оперативными и файловыми структурами. Обзор различных алгоритмов сортировки и поиска приведен в [17].

Списком называют упорядоченное множество, состоящее из переменного числа элементов, к которым применимы операции включения, исключения. Список, отражающий отношения соседства между элементами, называют линейным. Логические списки (и их частные виды: стеки, очереди, деки) можно реализовать статическим вектором или вектором в виде динамической переменной, но в этих случаях на размер списка накладываются ограничения. Если ограничения на длину списка не допускаются, то список представляется в памяти в виде связной структуры. Для снятия ограничений линейные связные списки целесообразно реализовывать динамическими структурами данных. Такие списки будем называть динамическими.

Стек — это линейный список с одной точкой доступа к его элементам, называемой вершиной стека. Добавить или убрать элементы можно только через его вершину. Принцип работы стека: LIFO (Last In-First Out — последним пришел — первым исключается).

Основные операции над стеком:

• включение нового элемента (англ. push — заталкивать);

• исключение элемента из стекла (англ. pop — выскакивать).

Вспомогательные операции:

• определение текущего числа элементов в стеке;

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

• очистка стека;

• неразрушающее чтение элемента из вершины стека (может быть реализовано как комбинация основных операций: pop и push).

Очередь — это линейная структура данных, в один конец которой добавляются элементы, а с другого конца изымаются. Принцип работы очереди: FIFO (First In — First Out — первым пришел — первым вышел).

Дек (от англ. deq — double ended queue) — особый вид очереди в виде последовательного списка, в котором как включение, так и исключение элементов может осуществляться с любого из двух концов списка. Частный случай дека — дек с ограниченным входом и дек с ограниченным выходом.

Разветвленный список, или дерево, — это список, элементами которого могут быть тоже списки.

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