Lecture 12 - Binary Trees, Binary Search Trees

Lecture 12 - Binary Trees, Binary Search Trees - Wednesday,...

Info iconThis preview shows pages 1–5. Sign up to view the full content.

View Full Document Right Arrow Icon

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

View Full DocumentRight Arrow Icon

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

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Wednesday, Feb 29th 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 CONSIDER REVAMPING SIMPLIFY INSERTION PSEUDOCODE SHOW TREE BEING HALVED DURING EACH SEARCH STEP Binary Tree Traversals When we process all the nodes in a tree, its 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 Lets see a pre-order traversal first! 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 nodes value out. 2. Search the current node to see if its value matches the one youre searching for. 3. Add the current nodes value to a total for the tree 4. Etc NULL a b c NULL d NULL NULL NULL e NULL root 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 left sub-tree . } main() { Node *root; PreOrder(root); } NULL a b c NULL d NULL NULL NULL e NULL root cur Output: a b The Pre-order Traversal d 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 left sub-tree . } cur 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 left sub-tree . } cur void PreOrder(Node *cur) { if (cur == NULL) // if empty, return return; cout << cur->value; // Process the current node....
View Full Document

Page1 / 51

Lecture 12 - Binary Trees, Binary Search Trees - Wednesday,...

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

View Full Document Right Arrow Icon
Ask a homework question - tutors are online