Presentation on theme: "CMPS 2433 Discrete Structures Chapter 5 - Trees R. HALVERSON – MIDWESTERN STATE UNIVERSITY."— Presentation transcript:
CMPS 2433 Discrete Structures Chapter 5 - Trees R. HALVERSON – MIDWESTERN STATE UNIVERSITY
Basic Tree Tree: Connected graph with no cycles Theorem 5.1: Let U & V be vertices in a tree. Then there is exactly one simple path between U & V. Since connected, there exists at least one path If 2, then there must be a cycle (discussion pg. 231)
More Tree Theorems 5.2: In a tree with more than 1 vertex, there are at least 2 vertices of degree 1. 5.3: A tree with n vertices has exactly n-1 edges. (Proof by induction – p. 232) 5.4a: If an edge is removed from a tree, the resulting graph is not connected (so not a tree) 5.4b: If an edge is added to a tree, the result is a cycle (so not a tree)
Theorem 5.5: Following statements are equivalent for a graph T a)T is a tree b)T is connected & V = E+1 c)T has 0 cycles & V = E+1 d)There is exactly 1 simple path between any 2 vertices e)T is connected & removal of any edge results in graph that is not connected f)T has no cycles & addition of edge between 2 non-adjacent vertices results in a cycle
Example 5.2 – page 229 Build telephone network among a group towns using fewest lines possible; connections do not have to be direct, just connected Consider 5 towns Fully connected Tree See also Example 5.6 – p. 238 – Oil Pipeline
Spanning Tree Spanning tree of a graph G is a tree (connected graph with no cycles) containing all vertices of G May not be unique Note: A tree is a spanning tree. How? Remove 1 edge from each cycle. How do you find the cycles?
Breadth First Search Algorithm Using from previous chapter Edges connecting vertex to its predecessor forms a tree Can start at any vertex Produces Shortest Paths Tree
Theorem 5.6 A graph is connected iff it has a spanning tree.
Minimal & Maximal Spanning Trees Applies to Weighted Graphs Minimal Spanning Tree No other spanning tree of the graph has smaller weight May be multiple with same weight Figure 5.15 – pg. 242
Minimal Spanning Tree - Prim’s Algorithm Select any vertex, V1 Select smallest edge incident on V1 Now, some V2 is also included in selection Select smallest edge with 1 end a selected vertex & other end not selected vertex Repeat until all vertices are included
Prim’s Algorithm Complexity O(n 3 ) – n = number vertices Maximal Spanning Tree?? How can we do this?
Kruskal’s Minimal Spanning Tree Alg. (p. 252) Start with all vertices in separate sets Select smallest edge; the 2 vertex endpoints have been selected; Union the sets containing the 2 vertices Select smallest edge for which 2 endpoints are NOT in same set Repeat until all vertices are in one set How is this different from Prim’s?
5.4 Rooted Trees Example: Family Tree Rooted Tree: a directed graph T such that 1.If ignore direction of edges, graph is a tree 2.There exists unique vertex R with in-degree 0, in-degree of all other V is 1 (R is called the Root) Usually draw with Root at top & other edges going down
Theorem 5.9 In a rooted tree: 1.V = E + 1 2.No Directed Cycles 3.Unique simple directed path from root to all other Vertices
5.5 Binary Trees & Traversals A rooted tree in which each vertex has at most 2 children, denoted left child & right child Left subtree of V: subtree rooted by left child of V Right subtree
5.6 Binary Search Tree (BST) (p.296) Consider – each vertex has a value. BST: For every vertex, all vertices in left subtree have greater value that root and all vertices in right subtree have values less than root.