Trees – Chapter 9 Slides courtesy of Dr. Michael P. Frank University of Florida Dept. of Computer & Information Science & Engineering.

Slides:



Advertisements
Similar presentations
Trees Chapter 11.
Advertisements

Chapter 10: Trees. Definition A tree is a connected undirected acyclic (with no cycle) simple graph A collection of trees is called forest.
Greedy Algorithms Greed is good. (Some of the time)
Today’s topics Decision Trees Reading: Sections 9.1 CompSci 102.
22C:19 Discrete Structures Trees Spring 2014 Sukumar Ghosh.
Introduction to Trees Chapter 6 Objectives
Data Structures: A Pseudocode Approach with C 1 Chapter 6 Objectives Upon completion you will be able to: Understand and use basic tree terminology and.
CMPS 2433 Discrete Structures Chapter 5 - Trees R. HALVERSON – MIDWESTERN STATE UNIVERSITY.
1 Copyright M.R.K. Krishna Rao 2003 Ch 9 - Trees Definition: A tree is a connected undirected graph with no simple circuits. Since a tree cannot have a.
1 Section 9.1 Introduction to Trees. 2 Tree terminology Tree: a connected, undirected graph that contains no simple circuits –must be a simple graph:
CS 171: Introduction to Computer Science II
Discrete Mathematics Transparency No. 8-1 Chapter 8 Trees.
Lists A list is a finite, ordered sequence of data items. Two Implementations –Arrays –Linked Lists.
CS 206 Introduction to Computer Science II 09 / 22 / 2008 Instructor: Michael Eckmann.
Rooted Trees. More definitions parent of d child of c sibling of d ancestor of d descendants of g leaf internal vertex subtree root.
© 2006 Pearson Addison-Wesley. All rights reserved11 A-1 Chapter 11 Trees.
Module #1 - Logic 1 Based on Rosen, Discrete Mathematics & Its Applications. Prepared by (c) , Michael P. Frank and Modified By Mingwu Chen Trees.
Marc Smith and Jim Ten Eyck
KNURE, Software department, Ph , N.V. Bilous Faculty of computer sciences Software department, KNURE The trees.
Trees and Tree Traversals Prof. Sin-Min Lee Department of Computer Science San Jose State University.
COSC2007 Data Structures II
1 Trees Tree nomenclature Implementation strategies Traversals –Depth-first –Breadth-first Implementing binary search trees.
Trees Chapter 15 Data Structures and Problem Solving with C++: Walls and Mirrors, Carrano and Henry, © 2013.
Ceng-112 Data Structures I 1 Chapter 7 Introduction to Trees.
CS Data Structures Chapter 5 Trees. Chapter 5 Trees: Outline  Introduction  Representation Of Trees  Binary Trees  Binary Tree Traversals 
BCT 2083 DISCRETE STRUCTURE AND APPLICATIONS
LOGO.  Trees:  In these slides: Introduction to trees Applications of trees Tree traversal 2.
Lecture 10 Trees –Definiton of trees –Uses of trees –Operations on a tree.
Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth.
Foundations of Discrete Mathematics
Tree A connected graph that contains no simple circuits is called a tree. Because a tree cannot have a simple circuit, a tree cannot contain multiple.
Binary Trees, Binary Search Trees RIZWAN REHMAN CENTRE FOR COMPUTER STUDIES DIBRUGARH UNIVERSITY.
Module #19: Graph Theory: part II Rosen 5 th ed., chs. 8-9.
Discrete Structures Lecture 12: Trees Ji Yanyan United International College Thanks to Professor Michael Hvidsten.
17.1 CompSci 102 Today’s topics Instant InsanityInstant Insanity TreesTrees –Properties –Applications Reading: Sections Reading: Sections
TREES. What is a tree ? An Abstract Data Type which emulates a tree structure with a set of linked nodes The nodes within a tree are organized in a hierarchical.
Based on Rosen, Discrete Mathematics & Its Applications, 5e Prepared by (c) Michael P. Frank Modified by (c) Haluk Bingöl 1/18 Module.
Preview  Graph  Tree Binary Tree Binary Search Tree Binary Search Tree Property Binary Search Tree functions  In-order walk  Pre-order walk  Post-order.
Discrete Structures Trees (Ch. 11)
Chap 8 Trees Def 1: A tree is a connected,undirected, graph with no simple circuits. Ex1. Theorem1: An undirected graph is a tree if and only if there.
Agenda Review: –Planar Graphs Lecture Content:  Concepts of Trees  Spanning Trees  Binary Trees Exercise.
5.5.2 M inimum spanning trees  Definition 24: A minimum spanning tree in a connected weighted graph is a spanning tree that has the smallest possible.
Discrete Mathematics Chapter 5 Trees.
CS 103 Discrete Structures Lecture 23 Trees (1). Second Midterm Exam 1 st Lecture in December (same time as the lecture) 75 minute duration Will cover.
CMSC 341 Introduction to Trees. 2/21/20062 Tree ADT Tree definition –A tree is a set of nodes which may be empty –If not empty, then there is a distinguished.
Chapter 10: Trees A tree is a connected simple undirected graph with no simple circuits. Properties: There is a unique simple path between any 2 of its.
CHAPTER 11 TREES INTRODUCTION TO TREES ► A tree is a connected undirected graph with no simple circuit. ► An undirected graph is a tree if and only.
Foundation of Computing Systems Lecture 4 Trees: Part I.
1 Trees : Part 1 Reading: Section 4.1 Theory and Terminology Preorder, Postorder and Levelorder Traversals.
Discrete Mathematics Chapter 10 Trees. Outline 10.1 Introduction to Trees 10.2 Applications of Trees 10.3 Tree Traversal 10.4 Spanning Trees 10.5 Minimal.
Discrete Mathematics Chapter 10 Trees.
Chapter 11. Chapter Summary  Introduction to trees (11.1)  Application of trees (11.2)  Tree traversal (11.3)  Spanning trees (11.4)
Chapter 11. Chapter Summary Introduction to Trees Applications of Trees (not currently included in overheads) Tree Traversal Spanning Trees Minimum Spanning.
1 Trees. 2 Trees Trees. Binary Trees Tree Traversal.
Section10.1: Introduction to Trees
Applied Discrete Mathematics Week 15: Trees
Trees Chapter 15.
Trees Chapter 11.
12. Graphs and Trees 2 Summary
Introduction to Trees Section 11.1.
Discrete Mathematics and its Applications
Taibah University College of Computer Science & Engineering Course Title: Discrete Mathematics Code: CS 103 Chapter 10 Trees Slides are adopted from “Discrete.
Trees.
Discrete Mathematics and its Applications
Discrete Mathematics and its Applications
Trees.
And the Final Subject is…
Binary Trees.
Trees Chapter 11.
Presentation transcript:

Trees – Chapter 9 Slides courtesy of Dr. Michael P. Frank University of Florida Dept. of Computer & Information Science & Engineering

§9.1: Introduction to Trees A tree is a connected undirected graph that contains no circuits. –Theorem: There is a unique simple path between any two of its nodes. A (not-necessarily-connected) undirected graph without simple circuits is called a forest. –You can think of it as a set of trees having disjoint sets of nodes. A leaf node in a tree or forest is any pendant or isolated vertex. An internal node is any non-leaf vertex (thus it has degree ≥ ___ ).

Tree and Forest Examples A Tree:A Forest: Leaves in green, internal nodes in brown.

Rooted Trees A rooted tree is a tree in which one node has been designated the root. –Every edge is (implicitly or explicitly) directed away from the root. You should know the following terms about rooted trees: –Parent, child, siblings, ancestors, descendents, leaf, internal node, subtree.

Rooted Tree Examples Note that a given unrooted tree with n nodes yields n different rooted trees. root Same tree except for choice of root

Rooted-Tree Terminology Exercise Find the parent, children, siblings, ancestors, & descendants of node f. a b c d e f g h i jk l m n o p q r root

n-ary trees A rooted tree is called n-ary if every vertex has no more than n children. –It is called full if every internal (non-leaf) vertex has exactly n children. A 2-ary tree is called a binary tree. –These are handy for describing sequences of yes-no decisions. Example: Comparisons in binary search algorithm.

Which Tree is Binary? Theorem: A given rooted tree is a binary tree iff every node other than the root has degree ≤ ___, and the root has degree ≤ ___.

Ordered Rooted Tree This is just a rooted tree in which the children of each internal node are ordered. In ordered binary trees, we can define: –left child, right child –left subtree, right subtree For n-ary trees with n>2, can use terms like “leftmost”, “rightmost,” etc.

Trees as Models Can use trees to model the following: –Saturated hydrocarbons –Organizational structures –Computer file systems In each case, would you use a rooted or a non-rooted tree?

Some Tree Theorems Any tree with n nodes has e = n−1 edges. –Proof: Consider removing leaves. A full m-ary tree with i internal nodes has n=mi+1 nodes, and =(m−1)i+1 leaves. –Proof: There are mi children of internal nodes, plus the root. And, = n−i = (m−1)i+1. □ Thus, when m is known and the tree is full, we can compute all four of the values e, i, n, and, given any one of them.

Some More Tree Theorems Definition: The level of a node is the length of the simple path from the root to the node. –The height of a tree is maximum node level. –A rooted m-ary tree with height h is called balanced if all leaves are at levels h or h−1. Theorem: There are at most m h leaves in an m- ary tree of height h. –Corollary: An m-ary tree with leaves has height h≥  log m . If m is full and balanced then h=  log m .

§9.2: Applications of Trees Binary search trees –A simple data structure for sorted lists Decision trees –Minimum comparisons in sorting algorithms Prefix codes –Huffman coding Game trees

Binary Search Trees A representation for sorted sets of items. –Supports the following operations in Θ(log n) average-case time: Searching for an existing item. Inserting a new item, if not already present. –Supports printing out all items in Θ(n) time. Note that inserting into a plain sequence a i would instead take Θ(n) worst-case time.

Binary Search Tree Format Items are stored at individual tree nodes. We arrange for the tree to always obey this invariant: –For every item x, Every node in x’s left subtree is less than x. Every node in x’s right subtree is greater than x Example:

Recursive Binary Tree Insert procedure insert(T: binary tree, x: item) v := root[T] if v = null then begin root[T] := x; return “Done” end else if v = x return “Already present” else if x v} return insert(rightSubtree[T], x)

Decision Trees (pp ) A decision tree represents a decision-making process. –Each possible “decision point” or situation is represented by a node. –Each possible choice that could be made at that decision point is represented by an edge to a child node. In the extended decision trees used in decision analysis, we also include nodes that represent random events and their outcomes.

Coin-Weighing Problem Imagine you have 8 coins, one of which is a lighter counterfeit, and a free-beam balance. –No scale of weight markings is required for this problem! How many weighings are needed to guarantee that the counterfeit coin will be found? ?

As a Decision-Tree Problem In each situation, we pick two disjoint and equal-size subsets of coins to put on the scale. The balance then “decides” whether to tip left, tip right, or stay balanced. A given sequence of weighings thus yields a decision tree with branching factor 3.

Applying the Tree Height Theorem The decision tree must have at least 8 leaf nodes, since there are 8 possible outcomes. –In terms of which coin is the counterfeit one. Recall the tree-height theorem, h≥  log m . –Thus the decision tree must have height h ≥  log 3 8  =  1.893…  = 2. Let’s see if we solve the problem with only 2 weighings…

General Solution Strategy The problem is an example of searching for 1 unique particular item, from among a list of n otherwise identical items. –Somewhat analogous to the adage of “searching for a needle in haystack.” Armed with our balance, we can attack the problem using a divide-and-conquer strategy, like what’s done in binary search. –We want to narrow down the set of possible locations where the desired item (coin) could be found down from n to just 1, in a logarithmic fashion. Each weighing has 3 possible outcomes. –Thus, we should use it to partition the search space into 3 pieces that are as close to equal-sized as possible. This strategy will lead to the minimum possible worst-case number of weighings required.

General Balance Strategy On each step, put  n/3  of the n coins to be searched on each side of the scale. –If the scale tips to the left, then: The lightweight fake is in the right set of  n/3  ≈ n/3 coins. –If the scale tips to the right, then: The lightweight fake is in the left set of  n/3  ≈ n/3 coins. –If the scale stays balanced, then: The fake is in the remaining set of n − 2  n/3  ≈ n/3 coins that were not weighed! Except if n mod 3 = 1 then we can do a little better by weighing  n/3  of the coins on each side. You can prove that this strategy always leads to a balanced 3-ary tree.

Coin Balancing Decision Tree Here’s what the tree looks like in our case: 123 vs vs. 2 left: 123 balanced: 78 right: vs. 8 4 vs. 5 L:1 R:2B:3 L:4 R:5B:6 L:7 R:8

§9.3: Tree Traversal Universal address systems Traversal algorithms –Depth-first traversal: Preorder traversal Inorder traversal Postorder traversal –Breadth-first traversal Infix/prefix/postfix notation

§9.5: Minimum Spanning Trees Not covering this semester.

Prefix Codes & Huffman Coding pp

Game Trees pp

§9.4: Spanning Trees Not covering this semester.