Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
структуры и алгоритмы / Лекции_лабор_структ.doc
Скачиваний:
56
Добавлен:
04.06.2015
Размер:
2.98 Mб
Скачать

5.5 Бинарные деревья

Весьма важный частный случай дерева - бинарное дерево. Бинарным деревом называется "m"-арное дерево при m=2. Иными словами, в бинарном дереве степень исхода для каждого узла не превышает 2. Любое "m"-арное дерево может быть преобразовано в эквивалентное ему бинарное дерево, которое проще исходного дерева с точки зрения изучения, представления в памяти и обработки. Для представления бинарного списка достаточен двусвязный список, который в общем случае не является линейным.

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

Важнейшие операции над бинарным деревом - обход его узлов, добавление и исключение некоторого поддерева.

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

1. Обработка (просмотр) корня дерева или поддерева.

2. Обход левого поддерева обработанного корня.

3. Обход правого поддерева обработанного корня.

Исключаемым или добавляемым объектом применительно к произвольному дереву является некоторое дерево. В операции исключения следует указать узел исходного дерева, играющий роль исключаемого поддерева и номер, или индекс, исключаемого поддерева, поскольку один узел в зависимости от степени исхода может играть роль корня для нескольких разных поддеревьев.

В операции включения должны быть заданы: включаемое поддерево, тот узел исходного дерева, к которому "подвешивается" в качестве ветви включаемое поддерево, и индекс, назначаемый поддереву и определяющий его местоположение среди других поддеревьев, связанных с узлом подключения.

Написание программ для организации и обработки связных списковых структур на языке программирования, в котором отсутствуют специальные средства манипулирования связными списками, требует обычно немалых усилий. И поэтому в тех программно- информационных системах, в которых связные списки играют ключевую роль, следует, по возможности, применять языки высокого уровня, содержащие средства работы со списками. К таким языкам относятся языки ЛИСП, IPL-V, СЛИП, FLPL, КОМИТ и др.

6 Строковые данные

6.1 Строки

Строкой называется конечная линейно упорядоченная последовательность простых данных одного и того же символьного типа, рассматриваемая как единое целое. Такое определение строки в общем случае предполагает, что задано множество различных символов, или литер, называемое алфавитом, и набор правил, позволяющих создавать желаемые цепочки символов. Алфавит, на основе которого создаются строки, определяется возможностями той ВС, в которой организуются и обрабатываются строковые данные.

Соседние файлы в папке структуры и алгоритмы