logo
Дискретка

35. Упорядоченные и бинарные деревья. Соответствия между ними.

Определим по индукции понятие упорядоченного дерева:

  1. пустое множество и список (a), где a – некоторый элемент, является упорядоченным деревом;

  2. если T1, T2,…, Tn – непустые упорядоченные деревья, a – некоторый новый элемент, то список T=(a, T1,…,Tn) образует упорядоченное дерево. При этом элемент a называется корнем упорядоченного дерева T;

  3. любое упорядоченное дерево строится в соответствии с пп. 1 и 2.

Если T1,…,Tn – упорядоченные деревья, то список (T1,…,Tn) называется упорядоченным лесом.

Для заданного упорядоченного дерева T определим множество S(T) его упорядоченных поддеревьев:

- если , то

- если T=(a), то S(T)={(a)}

- если T=(a,T1,…,Tn), то

Непустое упорядоченное дерево Т может интерпретироваться в виде системы пронумерованных непустых множеств, каждое из которых взаимно однозначно соответствует упорядоченному поддереву из S(T) так, что:

  1. если T – поддерево упорядоченного дерева T’’; , то для соответствующих множеств X и X’’ выполняется включение

  2. если T не является поддеревом упорядоченного дерева T’’; , соответствующие множества не пересекаются.

Упорядоченное дерево может также интерпретироваться в виде уступчатого списка, который обычно используется в оглавлениях. Любая иерархическая классификационная схема интерпретируется некоторым упорядоченным деревом. Частным случаем упорядоченного дерева является бинарное дерево. Определение понятия бинарного дерева повторяет определение для упорядоченного дерева с ограничением в п.2. Любой упорядоченный лес взаимно однозначно соответствует некоторому бинарному дереву.

Опишем алгоритм преобразования упорядоченного леса T=(T1,…,Tn) в бинарное дерево B(T):

  1. Если n=0,

  2. Если n>0, то корнем бинарного дерева B(T) является корень упорядоченного дерева T1, левое поддерево дерева B(T) – бинарное дерево B(T11,…,T1m), где T1=((a1),T11,…,T1m), правое поддерево дерева B(T) – бинарное дерево B(T2,…,Tn).

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4