Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi...

18
Lecture 16: Tree Traversal

Transcript of Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi...

Page 1: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Lecture 16:

Tree Traversal

Page 2: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Introduction

Page 3: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Tree Traversals

abejknopfcdglmhi

PREORDER

jenkopbfaclgmdhi

INORDER

jhopkefbclmghida

POSTORDER

Page 4: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Tree Traversal Algorithms

Ordered tree traversals are based on the depth-first graph traversal. The structure of all depth-first tree traversals are the same. The diffence is in when each node is evaluated.

function traverse(node: X){ for (all child nodes Y) { traverse(Y) }}

Page 5: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Permutation Tree for Four Elements

Page 6: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Simple Maze Solving as Tree Traversal

Page 7: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

List Representation of a Binary Tree

Page 8: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Edge List Representations of a Tree

Page 9: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Dynamic Memory Representations of a Tree

Page 10: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

A General Tree in Dynamic Memory

Page 11: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Data-Tag-Next

Page 12: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Example: Breadth-First Traversal

Page 13: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Breadth-First Traversal of a Treesample Ada Code

Page 14: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Depth-First Traversal - Binary Dreet

Page 15: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Depth-First Traversal of a Tree

Page 16: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Implementing Depth-First Traversals

PREORDER INORDER POSTORDER

Page 17: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Watching the Stack

Page 18: Lecture 16: Tree Traversal. Introduction Tree Traversals abejknopfcdglmhi PREORDER jenkopbfaclgmdhi INORDER jhopkefbclmghida POSTORDER.

Summary

DFT Tree TraversalsPre-orderIn-orderPost-order

Permutation Trees

Simple Maze as a Tree

List Representation of a Binary Tree

Edge List Representation of a Tree

Trees in Dynamic Memory

Data-Tag-Next: a general tree node

Breadth-First TraversalsUsually on Permutation TreesIterative with a Queue

Depth-First TraveralsUsed mostly for search and sortRecursive with a Stack