Binary Trees Chapter 20. 2 Definition And Application Of Binary Trees Binary tree: a nonlinear linked list in which each node may point to 0, 1, or two.

Slides:



Advertisements
Similar presentations
S. Sudarshan Based partly on material from Fawzi Emad & Chau-Wen Tseng
Advertisements

Senem Kumova Metin Spring2009 BINARY TREES && TREE TRAVERSALS Chapter 10 in A Book on C.
SUNY Oneonta Data Structures and Algorithms Visualization Teaching Materials Generation Group Binary Search Tree A running demonstration of binary search.
Binary Trees Chapter 6. Linked Lists Suck By now you realize that the title to this slide is true… By now you realize that the title to this slide is.
Computer Science C++ High School Level By Guillermo Moreno.
Binary Trees, Binary Search Trees CMPS 2133 Spring 2008.
CS 171: Introduction to Computer Science II
Introduction to Data Structure, Fall 2006 Slide- 1 California State University, Fresno Introduction to Data Structure Chapter 10 Ming Li Department of.
Binary Trees Terminology A graph G = is a collection of nodes and edges. An edge (v 1,v 2 ) is a pair of vertices that are directly connected. A path,
Main Index Contents 11 Main Index Contents Tree StructuresTree Structures (3 slides) Tree Structures Tree Node Level and Path Len. Tree Node Level and.
Introduction to Data Structure, Fall 2006 Slide- 1 California State University, Fresno Introduction to Data Structure Chapter 10 Ming Li Department of.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved L12 (Chapter 20) Lists, Stacks,
Starting Out with C++, 3 rd Edition 1 Chapter 20 Binary Trees.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 19 Binary.
CHAPTER 12 Trees. 2 Tree Definition A tree is a non-linear structure, consisting of nodes and links Links: The links are represented by ordered pairs.
CS21, Tia Newhall Binary Search Trees (BST) 1.Hierarchical data structure with a single pointer to root node 2.Each node has at most two child nodes (a.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Sixth Edition Chapter 19: Binary Trees.
Review Binary Tree Binary Tree Representation Array Representation Link List Representation Operations on Binary Trees Traversing Binary Trees Pre-Order.
Trees. Containers we have studied so far are linear. To represent nonlinear, i.e. hierarchal data we use trees. Nonlinear Containers root node leaf edge.
Lecture 10 Trees –Definiton of trees –Uses of trees –Operations on a tree.
Trees. Trees Traversal Inorder  (Left) Root (Right) Preorder  Root (Left) (Right) Postorder  (Left) (Right) Root Root LeftRight.
CISC220 Fall 2009 James Atlas Lecture 13: Trees. Skip Lists.
INTRODUCTION TO BINARY TREES P SORTING  Review of Linear Search: –again, begin with first element and search through list until finding element,
Binary Trees 2 Overview Trees. Terminology. Traversal of Binary Trees. Expression Trees. Binary Search Trees.
Tree (new ADT) Terminology:  A tree is a collection of elements (nodes)  Each node may have 0 or more successors (called children)  How many does a.
Tree Data Structures.
Binary Search Tree Traversal Methods. How are they different from Binary Trees?  In computer science, a binary tree is a tree data structure in which.
 Trees Data Structures Trees Data Structures  Trees Trees  Binary Search Trees Binary Search Trees  Binary Tree Implementation Binary Tree Implementation.
Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy Walters, and Godfrey Muganda Modified for use at Midwestern State University Chapter.
Topics Definition and Application of Binary Trees Binary Search Tree Operations.
Binary Trees In computer science, a binary tree is a tree data structure in which each node has at most two children, which are referred to as the left.
1 Chapter 7 Objectives Upon completion you will be able to: Create and implement binary search trees Understand the operation of the binary search tree.
CMSC 341 Introduction to Trees. 2/21/20062 Tree ADT Tree definition –A tree is a set of nodes which may be empty –If not empty, then there is a distinguished.
Binary Search Tree. Tree  A nonlinear data structure consisting of nodes, each of which contains data and pointers to other nodes.  Each node has only.
ADT Binary Search Tree Ellen Walker CPSC 201 Data Structures Hiram College.
Binary Search Trees (BST)
Trees Chapter 10. CS 308 2Chapter Trees Preview: Preview: The data organizations presented in previous chapters are linear, in that items are one.
Copyright © 2012 Pearson Education, Inc. Chapter 20: Binary Trees.
Data Structures: A Pseudocode Approach with C, Second Edition 1 Chapter 7 Objectives Create and implement binary search trees Understand the operation.
Concepts of Algorithms CSC-244 Unit 19 & 20 Binary Search Tree (BST) Shahid Iqbal Lone Computer College Qassim University K.S.A.
Binary Tree.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 20: Binary Trees.
Search: Binary Search Trees Dr. Yingwu Zhu. Review: Linear Search Collection of data items to be searched is organized in a list x 1, x 2, … x n – Assume.
Linked Lists Chapter Introduction To The Linked List ADT Linked list: set of data structures (nodes) that contain references to other data structures.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 20: Binary Trees.
Algorithms Binary Trees. Learning Objectives Describe algorithms for the insertion, retrieval and deletion of data items stored in a binary tree. Describe.
Binary Search Trees. 2 Overview Recursive linked list ops Binary Trees.
(c) University of Washington20-1 CSC 143 Java Trees.
Binary Search Trees Chapter 7 Objectives
Definition and Application of Binary Trees
Data Structure and Algorithms
Recursive Objects (Part 4)
Binary search tree. Removing a node
Binary Search Trees Chapter 7 Objectives
Binary Search Tree (BST)
Tree.
Section 8.1 Trees.
Binary Trees, Binary Search Trees
Chapter 20: Binary Trees.
Chapter 21: Binary Trees.
Find in a linked list? first last 7  4  3  8 NULL
Tree A tree is a data structure in which each node is comprised of some data as well as node pointers to child nodes
Binary Trees, Binary Search Trees
Trees Chapter 10.
CSC 143 Java Trees.
Chapter 20: Binary Trees.
Binary Trees, Binary Search Trees
Data Structures Using C++ 2E
Chapter 11 Trees © 2011 Pearson Addison-Wesley. All rights reserved.
Binary Search Tree.
Presentation transcript:

Binary Trees Chapter 20

2 Definition And Application Of Binary Trees Binary tree: a nonlinear linked list in which each node may point to 0, 1, or two other nodes Each node contains one or more data fields and two pointers NULL

3 Binary Tree Terminology Tree pointer: like a head pointer for a linked list, it points to the first node in the binary tree Root node: the node at the top of the tree NULL

4 Binary Tree Terminology Leaf nodes: nodes that have no children The nodes containing 7 and 43 are leaf nodes NULL NULL

5 Binary Tree Terminology Child nodes, children: nodes below a given node The children of the node containing 31 are the nodes containing 19 and 59 NULL NULL

6 Binary Tree Terminology Parent node: node above a given node The parent of the node containing 43 is the node containing 59 NULL NULL

7 Binary Tree Terminology Subtree: the portion of a tree from a node down to the leaves The nodes containing 19 and 7 are the left subtree of the node containing 31 NULL NULL

8 Uses Of Binary Trees Binary search tree: data organized in a binary tree to simplify searches Left subtree of a node contains data values < the data in the node Right subtree of a node contains values > the data in the node NULL NULL

9 Searching In A Binary Tree 1)Start at root node 2)Examine node data: a)Is it desired value? Done b)Else, is desired data < node data? Repeat step 2 with left subtree c)Else, is desired data > node data? Repeat step 2 with right subtree 3)Continue until desired value found or NULL pointer reached NULL NULL

10 Searching In A Binary Tree To locate the node containing 43, –Examine the root node ( 31 ) first –Since 43 > 31, examine the right child of the node containing 31, ( 59 ) –Since 43 < 59, examine the left child of the node containing 59, ( 43 ) –The node containing 43 has been found NULL NULL

11 Binary Search Tree Operations Create a binary search tree – organize data into a binary search tree Insert a node into a binary tree – put node into tree in its correct position to maintain order Find a node in a binary tree – locate a node with particular data value Delete a node from a binary tree – remove a node and adjust links to maintain binary tree

12 Binary Search Tree Node A node in a binary tree is like a node in a linked list, with two node pointer fields: struct TreeNode { int value; TreeNode *left; TreeNode *right; }

13 Creating A New Node Allocate memory for new node: newNode = new TreeNode; Initialize the contents of the node: newNode->value = num; Set the pointers to NULL : newNode->Left = newNode->Right = NULL; newNode 23 NULL newNode 23

14 Inserting A Node In A Binary Search Tree 1)If tree is empty, insert the new node as the root node 2)Else, compare new node against left or right child, depending on whether data value of new node is root node 3)Continue comparing and choosing left or right subtree until NULL pointer found 4)Set this NULL pointer to point to new node

15 Inserting A Node In A Binary Search Tree NULL root Examine this node first – value is < node, so go to left subtree Examine this node second – value is > node, so go to right subtree Since the right subtree is NULL, insert here NULL newNode 23 NULL

16 Traversing A Binary Tree Three traversal methods: 1)Inorder: a)Traverse left subtree of node b)Process data in node c)Traverse right subtree of node 2)Preorder: a)Process data in node b)Traverse left subtree of node c)Traverse right subtree of node 3)Postorder: a)Traverse left subtree of node b)Traverse right subtree of node c)Process data in node

17 Traversing A Binary Tree NULL TRAVERSAL METHOD NODES VISITED IN ORDER Inorder 7, 19, 31, 43, 59 Preorder 31, 19, 7, 59, 43 Postorder 7, 19, 43, 59, 31 NULL

18 Searching In A Binary Tree Start at root node, traverse the tree looking for value Stop when value found or NULL pointer detected Can be implemented as a bool function NULL NULL Search for 43 ? return true Search for 17 ? return false

19 Deleting A Node From A Binary Tree – Leaf Node If node to be deleted is a leaf node, replace parent node’s pointer to it with a NULL pointer, then delete the node NULL 7 19 NULL 19 NULL Deleting node with 7 – before deletion Deleting node with 7 – after deletion

20 Deleting A Node From A Binary Tree – One Child If node to be deleted has one child node, adjust pointers so that parent of node to be deleted points to child of node to be deleted, then delete the node

21 Deleting A Node From A Binary Tree – One Child NULL NULL NULL Deleting node with 19 – before deletion Deleting node with 19 – after deletion

22 Deleting A Node From A Binary Tree – Two Children If node to be deleted has left and right children, –‘Promote’ one child to take the place of the deleted node –Locate correct position for other child in subtree of promoted child Convention in text: promote the right child, position left subtree underneath

23 Deleting A Node From A Binary Tree – Two Children NULL NULL NULL Deleting node with 31 – before deletion Deleting node with 31 – after deletion 7 19 NULL