Trees Chapter 9
Tree graph connected undirected no simple circuits (acyclic) no multiple edges no loops
Sample Trees? Tree Tree Not Not
Theorem 1 An undirected graph is a tree iff A simple path exists in a tree between any two vertices
Root A particular tree vertex Each edge is directed away from the root from which we assign a direction to each edge Each edge is directed away from the root
Rooted tree A tree with a designated root A directed graph Direction of all edges is away from root
Parent In a rooted tree, a parent of vertex v is the unique vertex u such that there is a directed edge from u to v
Child The vertex v to which a directed edge exists from parent u in a rooted tree
Siblings vertices with the same parent
Leaf a vertex of a tree that has no children
Ancestors of node A nodes located on the path from A to the root
Descendants of node A nodes located on the path from A to a leaf node
Internal vertices Vertices with children
Sub-tree a tree contained in a larger tree whose root may be a child node in the larger tree
m-ary tree a rooted tree with no more than m children per vertex
Full m-ary tree a rooted tree whose every internal vertex has exactly m children
Theorem 2 A tree with n vertices has n - 1 edges. 7 vertices 6 edges
Theorem 3 A full m-ary tree with i internal vertices contains n = mi + 1 vertices. m = 2 i = 7 15 vertices
Tree Height height (level) of a node height of a tree the length of the path from the root to a node height of a tree the length of the longest path in a tree
The maximum number of nodes at any level is mh h is height of a node at that level of the tree 212223
The minimum number of nodes of a tree of height h is h+1
The maximum number of nodes in a tree of height h is m(h+1) -1 2(3+1) - 1
Balanced tree A rooted m-ary tree of height h is called balanced if all leaves are at level h or h - 1 YES NO YES
If an m-ary tree of height h has l leaves, and the tree is full and balanced, h = ceil(log m l) h = ceil (log28) h = 3 What does this imply about access speed if a tree is used as a data structure?
Applications of Trees 8.2
Binary search tree A binary tree where key value in any node is greater than key of its left child and any of its children (the nodes in the left subtree) less than key of its right child (the nodes in the right subtree) http://math.nemcc.edu/bst/
Binary Search Tree Example
Form a BST with the words Mathematics, Physics, Geography, Zoology, Meteorology, Geology, Psychology, Chemistry
NOTE: Input order determines a tree's shape. Tree Animation
Tree Traversal 8.3
Inorder Tree Traversal process Left subtree inorder Visit a node (or process node) Process Right subtree inorder Processes BST vertices in ascending sequence http://nova.umuc.edu/~jarc/idsv/lesson1.html
Inorder Traversal Example LVR Arps, Dietz, Egofske, Fairchild, Garth, Huston, Keith Magillicuddy, Nathan, Perkins, Seliger, Talbot, Underwood,Verkins, Zarda
Preorder Tree Traversal allows quickest access to the whole tree VISIT a node process LEFT subtree in preorder process RIGHT subtree in preorder
Preorder Traversal Example VLR Magillicuddy, Fairchild, Dietz, Arps, Egofske, Huston, Garth, Keith, Talbot, Perkins, Nathan, Selinger, Verkins, Underwood, Zarda
Postorder Tree Traversal good for deletion of nodes; postfix notation process LEFT subtree in postorder process RIGHT subtree in postorder VISIT a node
Postorder Traversal Example LRV Arps, Egofske, Dietz, Garth, Keith, Huston, Fairchild, Nathan, Selinger, Perkinds, Underwood, Zarda, Verkins, Talbot, Magillicuddy
Expression Tree An ordered rooted tree associates operands & operators in a uniform way +
Give Pre, In, Postorder PreOrder: InOrder: PostOrder: - + + * 6 2 7 * 8 3 / 6 7 InOrder: 6 * 2 + 7 + 8 * 3 - 6 / 7 PostOrder: 6 2 * 7 + 8 3 * + 6 7 / - +
Spanning Trees 9.4
Spanning Subgraph A spanning subgraph of G is G’ = (V, E’) where E’ is a subset of E Note every vertex of G is included
Spanning Tree A spanning subgraph that is a tree connected acyclic See p. 581-2
Depth First Search A procedure for constructing a spanning tree by adding edges that form a path until this is not possible then moving back up the tree until a vertex is found where a new path can be formed http://www.cs.sunysb.edu/~skiena/combinatorica/animations/search.html
Breadth First Search A procedure for constructing a spanning tree that successively adds all edges incident to the last set of edges added unless a simple circuit is formed http://www.cs.duke.edu/~wcp/DFSanim.html http://152.3.140.5/~wcp/DFSanim.html
Perform DFS, BFS search DFS: a, b, c, d, e, f, g BFS: a b c g d e f
Perform DFS, BFS search DFS: a, b, c, d, e, f BFS: a b d e c f
Minimum Spanning Tree A connected weighted graph is a spanning tree that has the smallest possible sum of weights of its edges. http://study.haifa.ac.il/~hvaiderm/sem3.html