lecture13

# lecture13 - Wed, Feb 25 th Bi nar y Tr ee Tr aver sal s Usi...

This preview shows pages 1–8. Sign up to view the full content.

Wed, Feb 25 th Binary Tree Traversals Using Binary Trees to Evaluate Expressions Binary Search Trees Binary Search Tree Operations Searching for an item Inserting a new item Finding the minimum and maximum items Printing out the items in order Deleting the whole tree dd recursion animations to source code inorder and post order traversals)

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Binary Tree Traversals When we process all the nodes in a tree, it’s called a traversal. There are four common ways to traverse a tree. 1. Pre-order traversal 2. In-order traversal 3. Post-order traversal 4. Level-order traversal Preorder : 1. Process the current node. 2. Process the nodes in the left sub-tree. 3. Process the nodes in the right sub-tree.
The Preorder Traversal Preorder : 1. Process the current node. 2. Process the nodes in the left sub-tree. 3. Process the nodes in the right sub-tree. By “ process the current node ” we typically mean one of the following: 1. Print the current node’s value out. 1. Search the current node to see if its value matches the one you’re searching for. 1. Add the current node’s value to a total for the tree 1. Etc…

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
void PreOrder(Node *cur) { if (cur == NULL) / / if empty, return… return; cout << cur->value; / / Process the current node. PreOrder(cur->left); Process nodes in left sub-tree . PreOrder(cur-> right); Process nodes in . } main() { Node *root; PreOrder(root); } NULL “a” “b” “c” “d” “e” root Output: a Cur points to “a” { cout << cur->value; node. Process nodes in . Process nodes in . } Cur points to “b” b The Pre-order Traversal { cout << cur->value; node. Process nodes in . Process nodes in . } Cur points to “d” d { cout << cur->value; node. Process nodes in . Process nodes in . } Cur points to !
main() { Node *root; PreOrder(root); } NULL “a” “b” “c” “d” “e” root Output: The Pre-order Traversal a bd void PreOrder(Node *cur) { if (cur == NULL) / / if empty, return… return; cout << cur->value; / / Process the current node. PreOrder(cur->left); Process nodes in left sub-tree . PreOrder(cur-> right); Process nodes in . } Cur points to “a” { cout << cur->value; node. Process nodes in . Process nodes in . } Cur points to “b” { cout << cur->value; node. Process nodes in . Process nodes in . } Cur points to “d” { cout << cur->value; node. Process nodes in . Process nodes in . } Cur points to !

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
main() { Node *root; PreOrder(root); } NULL “a” “b” “c” “d” “e” root Output: cur a bd void PreOrder(Node *cur) { if (cur == NULL) / / if empty, return… return; cout << cur->value; / / Process the current node. PreOrder(cur->left); Process nodes in left sub-tree . PreOrder(cur-> right); Process nodes in . } Cur points to “a” { cout << cur->value; node. Process nodes in . Process nodes in . } Cur points to “b” { cout << cur->value; node. Process nodes in . Process nodes in . } Cur points to “d” The Pre-order Traversal
main() { Node *root; PreOrder(root); } Output: NULL “a” “b” “c” “d” “e” root a bd void PreOrder(Node *cur) { if (cur == NULL) / / if empty, return… return; cout << cur->value; / / Process the current node.

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

## This note was uploaded on 11/07/2009 for the course CS 32 taught by Professor Davidsmallberg during the Winter '08 term at UCLA.

### Page1 / 46

lecture13 - Wed, Feb 25 th Bi nar y Tr ee Tr aver sal s Usi...

This preview shows document pages 1 - 8. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online