Московский Государственный Университет
им. Циолковского
Студент:Заливнов Олег
Группа : 5МС-II-23
Лекция : 8
Тема : Деревья
TREES
Plan:
1) The tree presenation of dataconstructions.
2) What is tree?
a) definition
b) the terminology
c) types of trees
3) Tree applications in encodingsystems.
Elementar data can have different types(string,integer
and so on). But if to talk about complex dataconstruction –
it have no type. Complex data constructions consist of simple
data, and CDC are stored as data searchingalgorithm. and that
is why CDC are the «selectors» — mechanism ofsearching and
accesing of data.
Such kinds of data as complex data constructions areneed
to organize search.
We can describe CDC in differentways. For example we can
describe it in the way as it described in the programming
language Cobol :
1 University
2 (first fac.)
2 (second fac.)
2 (third fac.)
2 (fourth fac.)
2 fifth fac.
3 PM
4 (Pasha)
4 (Andrey)
3 IT
4 (Zhenia)
4 (Olga)
3 MS
4 (Oleg)
4 (Helen)
4 (Artem).
Where the word in brackets (e.g. (Oleg) means the
elementary data construction).
The most powerful way of description aCDC is a tree.
NOW WHAT IS TREE ?
Tree is a connected undirected graph with no simple
circuits. So a tree cannot contain multileedges or loops, and
so tree is a simple graph.
Example 1 :
D─────────── A────────────C
│ │ │
│ │ │
│ B ────F │
│ │
E H──── G ───── I───── J
this is a tree ;
Example 2 :
E────────── A────────── B
│ │ │
│ │ │
F D───────────C
it is not the tree, because pathA-B-C-D is a loop;
Example 3 :
A─────── B
│
D────┼──── E────── F
│
C
it is not the tree too because this graph is not
connected;
Also we can select a special vertexand call it a root and
assign the direction to each edge. And we call such tree a
ROOTED tree.
Example 4 :
A ────B A ───B A ─── B
│ │
│ │
D ──── C──── G D ───C ─── G D ───C ─── G
│ │ │ │ │ │
│ │
F H F H F H
a)Unrooted tree . b) Rooted tree c) Rooted tree
with root A . with root C .
The unique vertex A is called PARENT of vertex B ifthere
is a directed edge from A to B. When vertex A is parent of
vertex B, vertex B is called a CHILD ofvertex A.
Vertices with the same parent are called SIBLINGS. The
ANCESTORS of a vertex other then th eroot are the verticesin
thepath from root to this vertix, excluding the vertex itself
(that is its parents, parents of its parents and so on…).
The DESCENDANTS of a vertex A are thosevertices which have A
as an ancestor.
If a vertex of a tree has no childrenit is calle a LEAF.
If a vertex has children it is calledINTERNAL VERTEX.
If A is a vertex in a tree, the subgraph of a tree which
consists of A andall its descendants and all edges incident
to these descendants is called a SUBTREEwith a root A.
Example 5 :
A ─── B
│
D ───C ─── G D ───C ─── G
│ │ │ │
F H F H
(a) Tree T (b) Subtree T1
A — is a root
A — is a parent of B and C.
C — is a child of A
C and B — are siblings
C — is an ancestor of H
H — is an descendant of A
F — is a leaf
C — is an internal vertex
A rooted tree is called an M-ARY TREE if everyinternal
vertex has no more then M children. The tree is called a FULL
M-ARY tree if every internal vertex has exactly M children.
And if M = 2 then such M-ary tree iscalled BINARY TREE.
Example 6 :
A ───B A
│
│
D ─── C─── G D ───C ─── G ─── E
│ │ │ │
F H F H
a) 3-ary tree b) full 3-ary tree
with root A. with root C.
C ───G ── B
│ │
F H
c) binary tree
with rootC.
Also we can order the children of eachinternal vertex in
the rooted tree. Such trees are calledORDERED ROOTED TREES.
In such trees children are drawn in orderfrom left to right.
In an ordered binary tree, if aninternal vertex has two
children, first is called LEFT CHILD, second is called RIGHT
CHILD.
If a subtree has a left child of avertex as a root then
such subtree is called LEFT SUBTREE OF AVERTEX. If a root of
a subtree is a right child of a vertex then we call such
subtree RIGHT SUBTREE OF A VERTEX.
We will call the LEVEL of a vertex V in a rooted treethe
length of the unique path from the root tothe vertex V.
The level of root equal 0.
The HEIGHT of arooted tree is the length of its longest
path from the root to any vertex.
Example 7 :
D ─── C─── G
│ │
F H
The root is vertex C.
The level of F is 1.
The height of the tree is 2.
There are several theoremes abouttrees. I’ll just name
them :
1) An undefined graph is a tree if and only if there is a
unique simple path between any twovertices.
2) A tree with N vertices has N-1edges.
3) A full m-ary tree with i internalvertices contains
n = mi + 1 vertices.
4) A full m-ary tree with
(a) n vertices has i = (n-1)/m internal vertices
and l = [(m — 1)n + 1]/mleaves.
(b) i internal vertices has n =mi+1 vertices and
l = (m-1)i + 1 leaves.
(c) l leaves has n=(ml-1)/(m-1)vertices and
i = (l-1)/(m-1) internalvertices.
5) There are at most m^h leaves in any m-ary tree of
height = h.
There are several ways of drawing a tree.
First one to draw a trer as a diagram was presented in
previous examples, but there are some moreways to do it.
Second way of representing a tree is a brackets
representation. In this way the internal brackets present
sub-trees.
Example 8: (C is a root)
D ─── C─── G
│ │ ====== (C,(D,F,G,(H)))
F H
The third way is to present tree as a consistent numbered
sections.
Example 9 :
D ─── C─── G 1. C
│ │ ========== 1.1. D
1.2. F
F H 1.3. G
1.3.1. H
All the ways of presenting trees areequalent.
There is one very important application of trees in
encoding systems.
The task of encoding system is toenter codes of words or
frase so that message could be recoded. The main requirement
is the ability to synonymously restore theoriginal text with
the help of codes.
So for example we have a binary message and a code
vocabulary. I must say that not everyvocabulary can be a code
vacabulary. The requirements to it are thefollowing :
1) it must be full
2) it must be prefix vocabulary, it means that in such
vocabularu no one word begins fromanother.
So our task is to divide message intosymbols and encode
them.
Example 10 :
We have the message: 000011001
and the prefix full vocabulary : 1 E
01 L
001 G
000 O
And sothis message can be divided into four symbols :
000 01 1001
and thencan be encoded as OLEG.
It is notdifficult to mention that this vocabulary can be
presented as abinary tree.
Then wecan mention that every binary tree represents a
full,prefixcoding vocabulary.
So in suchway trees are used in encoding systems.