Computer Science 112 Fundamentals of Programming II Introduction to Trees
What Is a Tree? Each item has at most one predecessor Each item can have many successors
What Is a Tree? Start with a single node, called the root Root node
What Is a Tree? Start with a single node, called the root Each successor node is a child or daughter node Root node Daughters of root node
What Is a Tree? Successors are also called descendants Root node Descendants of root node
What Is a Tree? Nodes without successors are called leaf nodes The set of leaf nodes is the frontier Root node Leaf nodes (the frontier)
What Is a Tree? Nodes with at least one successor are called interior nodes Root node Interior nodes
What Is a Tree? X Predecessors are also called ancestors The immediate predecessor is called the parent Root node Ancestors of node X
What Is a Tree? Nodes with the same parent are called siblings Root node Siblings
What Is a Tree? Levels in a tree are numbered from 0 Root node Level 0 Level 1 Level 2 Level 3 There are three nodes in level 3
What Is a Tree? A binary tree allows at most two successors per node Root node
What Is a Tree? A general tree allows any number of successors per node Root node
Trees as Recursive Data Structures A tree is either –empty, or –consists of a node containing a datum one or more subtrees Each subtree is itself another tree
Tree Traversals We’d like to visit each data item in a tree Are the items randomly ordered, as in a bag or set? Think of visiting the data in a node, and its left and right subtrees, in some order
Order of nodes visited: D B C F AE D G Preorder Traversal Visit the data Visit the left subtree Visit the right subtree
Order of nodes visited: D B B C F AE D G Preorder Traversal Visit the data Visit the left subtree Visit the right subtree
Order of nodes visited: D B A B C F AE D G Preorder Traversal Visit the data Visit the left subtree Visit the right subtree
Order of nodes visited: D B A C B C F AE D G Preorder Traversal Visit the data Visit the left subtree Visit the right subtree
Order of nodes visited: D B A C F B C F AE D G Preorder Traversal Visit the data Visit the left subtree Visit the right subtree
Order of nodes visited: D B A C F E B C F AE D G Preorder Traversal Visit the data Visit the left subtree Visit the right subtree
Order of nodes visited: D B A C F E G B C F AE D G Preorder Traversal Visit the data Visit the left subtree Visit the right subtree
Order of nodes visited: A B C F AE D G Inorder Traversal Visit the left subtree Visit the data Visit the right subtree
Order of nodes visited: A B B C F AE D G Inorder Traversal Visit the left subtree Visit the data Visit the right subtree
Order of nodes visited: A B C B C F AE D G Inorder Traversal Visit the left subtree Visit the data Visit the right subtree
Order of nodes visited: A B C D B C F AE D G Inorder Traversal Visit the left subtree Visit the data Visit the right subtree
Order of nodes visited: A B C D E B C F AE D G Inorder Traversal Visit the left subtree Visit the data Visit the right subtree
Order of nodes visited: A B C D E F B C F AE D G Inorder Traversal Visit the left subtree Visit the data Visit the right subtree
Order of nodes visited: A B C D E F G B C F AE D G Inorder Traversal Visit the left subtree Visit the data Visit the right subtree
Order of nodes visited: A B C F AE D G Postorder Traversal Visit the left subtree Visit the right subtree Visit the data
Order of nodes visited: A C B C F AE D G Postorder Traversal Visit the left subtree Visit the right subtree Visit the data
Order of nodes visited: A C B B C F AE D G Postorder Traversal Visit the left subtree Visit the right subtree Visit the data
Order of nodes visited: A C B E B C F AE D G Postorder Traversal Visit the left subtree Visit the right subtree Visit the data
Order of nodes visited: A C B E G B C F AE D G Postorder Traversal Visit the left subtree Visit the right subtree Visit the data
Order of nodes visited: A C B E G F B C F AE D G Postorder Traversal Visit the left subtree Visit the right subtree Visit the data
Order of nodes visited: A C B E G F D B C F AE D G Postorder Traversal Visit the left subtree Visit the right subtree Visit the data
Order of nodes visited: D B F A C E G B C F AE D G Level Order Traversal For each level Visit data from left to right
Tree Applications File directories Processing sentences (computer programs or natural languages) Searchable data structures Heaps (implement heap sort, priority queues)
For Wednesday Binary Search Trees