Trees

Graphs and Trees
This handout:
• Trees
• Minimum Spanning Tree Problem
Terminology of Graphs:
Cycles, Connectivity and Trees
• A path that begins and ends at the same node is called a cycle.
Example:
•
•
•
•
Two nodes are connected if there is a path between them.
A graph is connected if every pair of its nodes is connected.
A graph is acyclic if it doesn’t have any cycle.
A graph is called a tree if it is connected and acyclic.
Example:
Examples/Applications of Trees
•
•
•
•
•
Family tree
Evolutionary tree
Possibility tree
Prime number factorization tree
Spanning tree of a telecom network
(considered later in this handout)
• Hydrocarbon molecules
Properties of Trees
 Definition: Let T be a tree.
If T has at least 3 nodes, then
– A node of degree 1 in T is called a leaf (or a terminal node).
– A node of degree greater than 1 is called an internal node.
 Lemma: Every tree with more than one node
has at least one leaf.
 Theorem: For any positive integer n,
any tree with n nodes has n-1 edges.
Proof by induction (blackboard).
Properties of Trees
 Lemma: If G is any connected graph,
C is a cycle in G,
and one of the edges of C is removed from G,
then the graph that remains is still connected.
 Theorem: For any positive integer n,
if G is a connected graph with n vertices and n-1 edges,
then G is a tree.
 Theorem: For any positive integer n,
if G is an acyclic graph with n vertices and n-1 edges,
then G is a tree.
Proofs on blackboard.
Rooted Trees
 Definition: A rooted tree is a tree in which one vertex is
distinguished from the others and is called the root.
r
a
b




c
d
The level of a vertex is the number of edges along the unique
path between it and the root.
The height of a rooted tree is the maximum level to any vertex
of the tree.
The children of a vertex v are those vertices that are adjacent to
v and one level farther away from the root than v.
When every vertex in a rooted tree has at most two children,
the tree is called a binary tree.
Minimum Spanning Tree Problem
• Given:
Graph G=(V, E), |V|=n
Cost function c: E  R .
Find a minimum-cost spanning tree for V
i.e., find a subset of arcs E*  E which
connects any two nodes of V
with minimum possible cost.
• Goal:
• Example:
2
b
3
a
4
G=(V,E)
3
d
8
5
7
c
4
e
Min. span. tree: G*=(V,E*)
3
b
d
2
8
a
3
5
7
4
e
c
4
Red bold arcs are in E*
Algorithm for solving
the Minimum Spanning Tree Problem
• Initialization: Select any node arbitrarily,
connect to its nearest node.
• Repeat
– Identify the unconnected node
which is closest to a connected node
– Connect these two nodes
Until all nodes are connected
Note: Ties for the closest node are broken arbitrarily.
The algorithm applied to our example
• Initialization: Select node a to start.
Its closest node is node b. Connect nodes a and b.
3
b
d
2
8
Red bold arcs are in E*;
a
3
5
4
c
thin arcs represent potential links.
7
4
e
• Iteration 1: There are two unconnected node closest to a
connected node: nodes c and d
3
b
d
(both are 3 units far from node b).
2
8
a
3
Break the tie arbitrarily by
5
connecting node c to node b.
7
4
e
c
4
The algorithm applied to our example
• Iteration 2: The unconnected node closest to a connected
node is node d (3 far from node b). Connect nodes b and d.
3
b
d
2
8
a
3
5
4
7
e
4
• Iteration 3: The only unconnected node left is node e. Its
closest connected node is node c
3
b
d
(distance between c and e is 4).
2
8
Connect node e to node c.
a
3
5
• All nodes are connected. The bold
7
4
e
c
arcs give a min. spanning tree.
4
c