Download presentation
Presentation is loading. Please wait.
Published byLucinda Eaton Modified over 9 years ago
1
Trees : Part 1 Section 4.1 (1) Theory and Terminology (2) Preorder, Postorder and Levelorder Traversals
2
Theory and Terminology Definition: A tree is a connected graph with no cycles Consequences: Between any two vertices, there is exactly one unique path
3
A Tree? 1 2 3 4 5687 9 10 1211
4
A Tree? 1 2 3 4 5687 9 10 1211
5
Theory and Terminology Definition: A rooted tree is a graph G such that: G is connected G has no cycles G has exactly one vertex called the root of the tree
6
Theory and Terminology Consequences The depth of a vertex v is the length of the unique path from root to v G can be arranged so that the root is at the top, its neighboring vertices are vertices of depth 1, and so on… The set of all vertices of depth k is called level k of the tree
7
A Rooted Tree 1 234 5687 9101211 root depth = 1 depth = 0 depth = 3 depth = 2 height = 2 height = 3 height = 0 height = 1
8
Rooted Tree: Recursive definition A graph with N nodes and N - 1 edges Graph has one root r Zero or more non-empty sub-trees, each of whose root is connected to r by an edge. Every node except the root has one parent
9
Theory and Terminology Definition: A descending path in a rooted tree is a path, whose edges go from a vertex to a deeper vertex 1 234 5687 9101211 root depth = 1 depth = 0 depth = 3 depth = 2 3 8 12
10
Theory and Terminology Consequences: A unique path from the root to any vertex is a descending path The length of this path is the depth of the vertex 1 234 5687 9101211 root depth = 1 depth = 0 depth = 3 depth = 2 1 3 8 11
11
Theory and Terminology Definition: If there is a descending path from v 1 to v 2, v 1 is an ancestor of v 2, and v 2 is a descendant of v 1.
12
Theory and Terminology Suppose v is a vertex of depth k: Any vertex that is adjacent to v must have depth k - 1 or k + 1. 1 234 5687 9101211 root depth = 1 depth = 0 depth = 3 depth = 2 3 1 78
13
Theory and Terminology Suppose v is a vertex of depth k: Vertices adjacent to v of depth k + 1 are called children of v. 1 234 5687 9101211 root depth = 1 depth = 0 depth = 3 depth = 2 3 78
14
Theory and Terminology Suppose v is a vertex of depth k: If k > 0, there is exactly one vertex of depth k – 1 that is adjacent to v in the graph. This vertex is called the parent of v. 1 234 5687 9101211 root depth = 1 depth = 0 depth = 3 depth = 2 3 1
15
Theory and Terminology Definitions A vertex with no children is called a leaf 1 234 5687 9101211 root depth = 1 depth = 0 depth = 3 depth = 2
16
Theory and Terminology Definitions Depth of a vertex v is its distance from the root. Height of a vertex v is the distance of the longest path from v to one of its descendant leaves. The height of a tree is the maximum depth of its vertices 1 234 5687 9101211 root depth = 1 depth = 0 depth = 3 depth = 2 height
17
Theory and Terminology Definitions The root is the only vertex of depth 0. The root has no parent. 1 234 5687 9101211 root depth = 1 depth = 0 depth = 3 depth = 2 1
18
Example of rooted tree Which are the parent nodes? Which are the child nodes? Which are the leaves? What is the height and depth of the tree? What is the height and depth of node E? Node F?
19
Overview of Tree Implementation Each node points to Its first child Its next sibling Back to its parent (optional) What could be an alternate representation?
20
Tree Traversals Definition: A traversal is the process for “visiting” all of the vertices in a tree Often defined recursively Each kind corresponds to an iterator type Iterators are implemented non-recursively
21
Preorder Traversal Visit vertex, then visit child vertices (recursive definition) Depth-first search Begin at root arrival Visit vertex on arrival Implementation may be recursive, stack- based, or nested loop
22
Preorder Traversal 1 234 5687 root 2 56 3 78 4
23
Preorder Traversal of UNIX Directory Tree
24
Postorder Traversal Visit child vertices, then visit vertex (recursive definition) Depth-first search Begin at root departure Visit vertex on departure Implementation may be recursive, stack- based, or nested loop
25
Postorder Traversal 1root 234 5678 2 5566 23 7788 344 1
26
Postorder Traversal Calculating Size of Directory
27
Levelorder Traversal Visit all vertices in level, starting with level 0 and increasing Breadth-first search Begin at root Visit vertex on departure Only practical implementation is queue- based
28
Levelorder Traversal 1root 234 5678 2 5566 23 7788 344 1
29
Tree Traversals Preorder: depth-first search (possibly stack-based), visit on arrival Postorder: depth-first search (possibly stack-based), visit on departure Levelorder: breadth-first search (queue- based), visit on departure
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.