Computer Science 112

48 Views

Download Presentation
## Computer Science 112

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Computer Science 112**Fundamentals of Programming II Introduction to Trees**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**What Is a Tree? Root node**Start with a single node, called the root**Eachsuccessor node is a child or daughter node What Is a Tree? Root node Daughters of root node**Successors are also called descendants**What Is a Tree? Root node Descendants of root node**Nodes without successors are called leaf nodes**The set of leaf nodes is the frontier What Is a Tree? Root node Leaf nodes (the frontier)**Nodes with at least one successor are called interior nodes**What Is a Tree? Root node Interior nodes**Predecessors are also called ancestors**The immediate predecessor is called the parent What Is a Tree? Root node X Ancestors of node X**Nodes with the same parent are called siblings**What Is a Tree? Root node Siblings**Levels in a tree are numbered from 0**What Is a Tree? Root node Level 0 Level 1 Level 2 Level 3 There are three nodes in level 3**A binary tree allows at most two successors per node**What Is a Tree? Root node**A general tree allows any number of successors per node**What Is a Tree? 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**Preorder Traversal**D Order of nodes visited: D B F G A E C Visit the data Visit the left subtree Visit the right subtree**Preorder Traversal**D Order of nodes visited: D B B F G A E C Visit the data Visit the left subtree Visit the right subtree**Preorder Traversal**D Order of nodes visited: D B A B F G A E C Visit the data Visit the left subtree Visit the right subtree**Preorder Traversal**D Order of nodes visited: D B A C B F G A E C Visit the data Visit the left subtree Visit the right subtree**Preorder Traversal**D Order of nodes visited: D B A C F B F G A E C Visit the data Visit the left subtree Visit the right subtree**Preorder Traversal**D Order of nodes visited: D B A C F E B F G A E C Visit the data Visit the left subtree Visit the right subtree**Preorder Traversal**D Order of nodes visited: D B A C F E G B F G A E C Visit the data Visit the left subtree Visit the right subtree**Inorder Traversal**D Order of nodes visited: A B F G A E C Visit the left subtree Visit the data Visit the right subtree**Inorder Traversal**D Order of nodes visited: A B B F G A E C Visit the left subtree Visit the data Visit the right subtree**Inorder Traversal**D Order of nodes visited: A B C B F G A E C Visit the left subtree Visit the data Visit the right subtree**Inorder Traversal**D Order of nodes visited: A B C D B F G A E C Visit the left subtree Visit the data Visit the right subtree**Inorder Traversal**D Order of nodes visited: A B C D E B F G A E C Visit the left subtree Visit the data Visit the right subtree**Inorder Traversal**D Order of nodes visited: A B C D E F B F G A E C Visit the left subtree Visit the data Visit the right subtree**Inorder Traversal**D Order of nodes visited: A B C D E F G B F G A E C Visit the left subtree Visit the data Visit the right subtree**Postorder Traversal**D Order of nodes visited: A B F G A E C Visit the left subtree Visit the right subtree Visit the data**Postorder Traversal**D Order of nodes visited: A C B F G A E C Visit the left subtree Visit the right subtree Visit the data**Postorder Traversal**D Order of nodes visited: A C B B F G A E C Visit the left subtree Visit the right subtree Visit the data**Postorder Traversal**D Order of nodes visited: A C B E B F G A E C Visit the left subtree Visit the right subtree Visit the data**Postorder Traversal**D Order of nodes visited: A C B E G B F G A E C Visit the left subtree Visit the right subtree Visit the data**Postorder Traversal**D Order of nodes visited: A C B E G F B F G A E C Visit the left subtree Visit the right subtree Visit the data**Postorder Traversal**D Order of nodes visited: A C B E G F D B F G A E C Visit the left subtree Visit the right subtree Visit the data**Level Order Traversal**D Order of nodes visited: D B F A C E G B F G A E C 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