Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
01.09.2020
Размер:
2.92 Mб
Скачать

Алгоритмы и структуры данных

Лекция 5.1

ДЕРЕВЬЯ

1.Определения дерева, леса, бинарного дерева.

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

2.Спецификация дерева, леса, бинарного дерева

3.Естественное соответствие бинарного дерева и леса

4.Обходы бинарных деревьев и леса

23.09.2014

Деревья

1

23.09.2014

Деревья

2

. Определения дерева, леса, бинарного дерева. Скобочное представление

В курсе «Дискретная математика»:

Дерево – связный граф, не содержащий циклов.

23.09.2014

Деревья

3

23.09.2014

Деревья

4

Определение (рекурсивное)

Дерево – конечное множество Т, состоящее из одного или более узлов, таких, что

а) имеется один специально обозначенный узел, называемый корнем данного дерева;

б) остальные узлы (исключая корень) содержатся в m 0 попарно не пересекающихся множествах

Т1, Т2, ..., Тm, каждое из которых, в свою очередь, является деревом. Деревья Т1, Т2, ..., Тm называются поддеревьями данного дерева.

 

 

a

 

 

 

 

b

c

 

d

 

i

j

h

e

f

g

 

 

 

 

 

k

23.09.2014

Деревья

5

Дерево T = (корень, T1, T2, …, Tm)

Терминология:

узел, лист, отец, сын, брат, предок, потомок Уровень узла (рекурсивно):

1)корень имеет уровень 1;

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

уровень (a, Т )

 

1,

если а корень дерева Т

 

уровень (а, Тi ) 1,

если а не корень дерева Т

 

 

где Ti – поддерево корня дерева T, такое, что

a Ti.

a

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

b

c

e

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j

h

f

 

 

 

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23.09.2014

 

 

Деревья

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

3

4

6

Если в определении дерева существен порядок перечисления поддеревьев Т1, Т2, ..., Тm,

то дерево называют упорядоченным и говорят о «первом» (Т1), «втором» (Т2) и т. д. поддеревьях данного корня (старший брат и т.п.).

В терминологии теории графов это «конечное ориентированное (корневое) упорядоченное дерево».

Лес – это множество (обычно упорядоченное),

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

Тогда пункт б) определения дерева:

б) узлы дерева, за исключением корня, образуют лес.

Дерево T = (корень, лес поддеревьев)

23.09.2014

Деревья

7

Представление дерева:

a ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

а

b

i

 

b

▓▓▓▓▓▓▓▓▓▓▓▓▓▓

 

 

j

 

 

i

▓▓▓▓▓▓▓▓▓▓

 

 

 

c

j

▓▓▓▓▓▓▓▓▓▓

 

c

h

 

▓▓▓▓▓▓▓▓▓▓▓▓▓▓

 

 

d

h

▓▓▓▓▓▓▓▓▓▓

 

d

e

 

▓▓▓▓▓▓▓▓▓▓▓▓▓▓

 

 

 

e ▓▓▓▓▓▓▓▓▓▓

 

 

f

k

 

f

▓▓▓▓▓▓▓▓▓▓

 

 

 

g

k ▓▓▓▓▓▓▓

 

g

 

 

 

▓▓▓▓▓▓▓▓▓▓

 

 

 

а

б

а – в виде уступчатого списка; б – в виде «упрощенного» уступчатого списка

23.09.2014

Деревья

8

Скобочное представление дерева и леса:

<лес > ::= пусто | < дерево > < лес >,

<дерево > ::= ( < корень > < лес > ).

a

b

c

d

i

j

h

e

f

g

k

(0a (1b (2i2) (2j2)1) (1c (2h2)1) (1d (2e2) (2f (3k3)2) (2g2)1)0)

( a ( b ( i ) ( j ) ) ( c ( h ) ) ( d ( e ) ( f ( k ) ) ( g ) ) )

23.09.2014

Деревья

9

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

Бинарное дерево конечное множество узлов, которое либо пусто, либо состоит из корня и двух непересекающихся бинарных деревьев, называемых правым поддеревом и левым поддеревом.

a

a

 

b

b

(a (b ) )

 

( a (b ))

Скобочное представление бинарного дерева (БД):

<БД > ::= < пусто > | < непустое БД >,

<пусто > ::= ,

<непустое БД > ::= ( < корень > < БД > < БД > ).

23.09.2014

Деревья

10