Binary tree

5,693 views 16 slides Jun 26, 2015
Slide 1
Slide 1 of 16
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16

About This Presentation

Binary tree


Slide Content

Data structures
Binary Tree

Binary Trees
A structure containing nodes with more than one self-referenced field. A binary
tree is made of nodes, where each node contains a "left" reference, a "right"
reference, and a data element. The topmost node in the tree is called the root.
Any node can have at most two branches, i.e.,there is no node with degree
greater than two. For binary trees we distinguish between the subtree on the
left and on the right, whereas for trees the order of the subtree was irrelevant.
Also a binary tree may have zero nodes.
Definition: A binary tree is a finite set of nodes which is either empty or
consists of a root and two disjoint binary trees called the left subtree and the
right subtree.

Binary Trees
Every node (excluding a root) in a tree is connected by a directed
edge from exactly one other node. This node is called a parent. On
the other hand, each node can be connected to arbitrary number
of nodes, called children.
leaves or external nodes
Nodes with no children are called leaves, or external nodes.
Nodes which are not leaves are called internal nodes.
Siblings
Nodes with the same parent are called siblings.

The depth of a node is the number of edges from the root to the node.
The height of a node is the number of edges from the node to the deepest
leaf.
The height of a tree is a height of the root.
A full binary tree is a binary tree in which each node has exactly zero or two
children.

A complete binary tree is a binary tree, which is completely filled, with the
possible exception of the bottom level, which is filled from left to right.

Binary Trees
•Binary trees are characterized by the fact that any
node can have at most two branches
•Definition (recursive):
–A binary tree is a finite set of nodes that is either empty or
consists of a root and two disjoint binary trees called the
left subtree and the right subtree
•Thus the left subtree and the right subtree are
distinguished
•Any tree can be transformed into binary tree
–by left child-right sibling representation
A
B
A
B

Binary Trees
•The abstract data type of binary tree

Binary Trees
•Two special kinds of binary trees:
(a) skewed tree, (b) complete binary tree
–The all leaf nodes of these trees are on two adjacent levels

Binary Trees (4/9)
•Properties of binary trees
–Lemma 5.1 [Maximum number of nodes]:
1.The maximum number of nodes on level i of a binary tree
is 2
i-1
, i ³1.
2.The maximum number of nodes in a binary tree of depth
k is 2
k
-1, k³1.
–Lemma 5.2 [Relation between number of leaf nodes and
degree-2 nodes]:
For any nonempty binary tree, T, if n
0
is the number of
leaf nodes and n
2 is the number of nodes of degree 2,
then n
0
= n
2
+ 1.
•These lemmas allow us to define full and complete
binary trees

Binary Trees (5/9)
•Definition:
–A full binary tree of depth k is a binary tree of death k having
2
k
-1 nodes, k ³ 0.
–A binary tree with n nodes and depth k is complete iff its
nodes correspond to the nodes numbered from 1 to n in the
full binary tree of depth k.
–From Lemma 5.1, the
height of a complete
binary tree with n nodes
is élog
2
(n+1)ù

Binary Trees
•Binary tree representations (using array)
–Lemma 5.3: If a complete binary tree with n nodes is
represented sequentially, then for any node with index i,
1 £ i £ n, we have
1. parent(i) is at ëi /2û if i ¹ 1.
If i = 1, i is at the root and has no parent.
2. LeftChild(i) is at 2i if 2i £ n.
If 2i > n, then i has no left child.
3. RightChild(i) is at 2i+1 if 2i+1 £ n.
If 2i +1 > n, then i has no left child
[1][2][3][4][5][6][7]
A B C — D — E
Level 1
Level 2 Level 3
A
B
D
C
E
1
2 3
4 56 7

Binary Trees
•Binary tree representations (using array)
–Waste spaces: in the worst case, a skewed tree of depth k
requires 2
k
-1 spaces. Of these, only k spaces will be occupied
–Insertion or deletion
of nodes from the
middle of a tree
requires the
movement of
potentially many nodes
to reflect the change in
the level of these nodes

Binary Trees
•Binary tree representations (using link)

Binary Trees
•Binary tree representations (using link)

.
A complete binary tree is very special tree, it provides the best possible
ratio between the number of nodes and the height.
The height h of a complete binary tree with N nodes is at most O(log N). We
can easily prove this by counting nodes on each level, starting with the root,
assuming that each level has the maximum number of nodes.
n = 1 + 2 + 4 + ... + 2
h-1
+ 2
h
= 2
h+1
- 1
Solving this with respect to h, we obtain
h = O(log n)

Algorithm
structure BTREE
declare CREATE( ) --> btree
ISMTBT(btree,item,btree) --> boolean
MAKEBT(btree,item,btree) --> btree
LCHILD(btree) --> btree
DATA(btree) --> item
RCHILD(btree) --> btree
for all p,r in btree, d in item let
ISMTBT(CREATE)::=true
ISMTBT(MAKEBT(p,d,r))::=false
LCHILD(MAKEBT(p,d,r))::=p; LCHILD(CREATE)::=error
DATA(MAKEBT(p,d,r))::d; DATA(CREATE)::=error
RCHILD(MAKEBT(p,d,r))::=r; RCHILD(CREATE)::=error
end
end BTREE

Advantages of trees
Trees are so useful and frequently used, because
they have some very serious advantages:
Trees reflect structural relationships in the data.
Trees are used to represent hierarchies.
Trees provide an efficient insertion and searching.
Trees are very flexible data, allowing to move
subtrees around with minimum effort .
Tags