{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

lecture13 - Monday,March1 st BinarySearchTrees...

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

View Full Document Right Arrow Icon
Monday, March 1 st   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
Background image of page 1

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

View Full Document Right Arrow Icon
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.
Background image of page 2
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. 2. Search the current node to see if its value matches the one you’re  searching for. 3. Add the current node’s value to a total for the tree 4. Etc…
Background image of page 3

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

View Full Document Right Arrow Icon
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 Cur points to “a” 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 Cur points to “b” b The Pre-order Traversal 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 points to “d” cur d void PreOrder(Node *cur) {     if (cur == NULL)     // if empty, return…          return;     cout << cur->value;        //  Process the  current  node.
Background image of page 4
Image of page 5
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}