Binary Search Trees - inf.usi.ch fileBinary Search Trees - inf.usi.ch
One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search...
-
Upload
estefany-phair -
Category
Documents
-
view
220 -
download
2
Transcript of One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search...
![Page 1: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/1.jpg)
One of the tree applications in Chapter 10 is binary search trees.
In Chapter 10, binary search trees are used to implement bags and sets.
This presentation illustrates how another data type called a dictionary is implemented with binary search trees.
Binary Search Trees
![Page 2: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/2.jpg)
The Dictionary Data Type
A dictionary is a collection of items, similar to a bag.
But unlike a bag, each item has a string attached to it, called the item's key.
![Page 3: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/3.jpg)
The Dictionary Data Type
A dictionary is a collection of items, similar to a bag.
But unlike a bag, each item has a string attached to it, called the item's key.
Example: The items I am storing are records containing data about a state.
![Page 4: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/4.jpg)
The Dictionary Data Type
A dictionary is a collection of items, similar to a bag.
But unlike a bag, each item has a string attached to it, called the item's key.
Example: The key for each record is the name of the state. Washington
![Page 5: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/5.jpg)
The Dictionary Data Type
The insertion procedure for a dictionary has two parameters.
void dictionary::insert(The key for the new item, The new item);
Washington
![Page 6: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/6.jpg)
The Dictionary Data Type
When you want to retrieve an item, you specify the key...
Item dictionary::retrieve("Washington");
![Page 7: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/7.jpg)
Item dictionary::retrieve("Washington");
The Dictionary Data Type
When you want to retrieve an item, you specify the key... ... and the retrieval procedure returns the item.
![Page 8: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/8.jpg)
The Dictionary Data Type
We'll look at how a binary tree can be used as the internal storage mechanism for the dictionary.
![Page 9: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/9.jpg)
Arizona
Arkansas
Colorado
A Binary Search Tree of States
The data in the dictionary will be stored in a binary tree, with each node containing an item and a key.
Washington
Oklahoma
Florida
Mass.
New
Ham
pshi
re
Wes
tV
irgi
nia
![Page 10: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/10.jpg)
Colorado
Arizona
Arkansas
A Binary Search Tree of States
Washington
OklahomaColorado
Florida
Mass.
New
Ham
pshi
re
Wes
tV
irgi
nia
Storage rules: Every key to the left
of a node is alphabetically before the key of the node.
![Page 11: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/11.jpg)
Arizona
Colorado
Arkansas
A Binary Search Tree of States
Storage rules: Every key to the left of
a node is alphabetically before the key of the node.
Washington
Oklahoma
Florida
Mass.
New
Ham
pshi
re
Wes
tV
irgi
nia
Example: “Massachusetts” and “ New Hampshire” are alphabetically before “Oklahoma”
![Page 12: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/12.jpg)
Arizona
Arkansas
A Binary Search Tree of States
Storage rules: Every key to the left of
a node is alphabetically before the key of the node.
Every key to the right of a node is alphabetically after the key of the node.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
![Page 13: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/13.jpg)
Arizona
Arkansas
A Binary Search Tree of States
Storage rules: Every key to the left of
a node is alphabetically before the key of the node.
Every key to the right of a node is alphabetically after the key of the node..
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
![Page 14: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/14.jpg)
Arizona
Arkansas
Retrieving Data
Start at the root. If the current node has
the key, then stop and retrieve the data.
If the current node's key is too large, move left and repeat 1-3.
If the current node's key is too small, move right and repeat 1-3.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
![Page 15: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/15.jpg)
Arizona
Arkansas
Retrieve " New Hampshire"
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Start at the root. If the current node has
the key, then stop and retrieve the data.
If the current node's key is too large, move left and repeat 1-3.
If the current node's key is too small, move right and repeat 1-3.
![Page 16: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/16.jpg)
Arizona
Arkansas
Retrieve "New Hampshire"
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Start at the root. If the current node has
the key, then stop and retrieve the data.
If the current node's key is too large, move left and repeat 1-3.
If the current node's key is too small, move right and repeat 1-3.
![Page 17: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/17.jpg)
Arizona
Arkansas
Retrieve "New Hampshire"
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Start at the root. If the current node has
the key, then stop and retrieve the data.
If the current node's key is too large, move left and repeat 1-3.
If the current node's key is too small, move right and repeat 1-3.
![Page 18: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/18.jpg)
Arizona
Arkansas
Retrieve "New Hampshire"
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Start at the root. If the current node has
the key, then stop and retrieve the data.
If the current node's key is too large, move left and repeat 1-3.
If the current node's key is too small, move right and repeat 1-3.
![Page 19: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/19.jpg)
Arizona
Arkansas
Adding a New Item with aGiven Key
Pretend that you are trying to find the key, but stop when there is no node to move to.
Add the new node at the spot where you would have moved to if there had been a node.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
![Page 20: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/20.jpg)
Arizona
Arkansas
Adding
Pretend that you are trying to find the key, but stop when there is no node to move to.
Add the new node at the spot where you would have moved to if there had been a node.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Iowa
![Page 21: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/21.jpg)
Arizona
Arkansas
Adding
Pretend that you are trying to find the key, but stop when there is no node to move to.
Add the new node at the spot where you would have moved to if there had been a node.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Iowa
![Page 22: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/22.jpg)
Arizona
Arkansas
Adding
Pretend that you are trying to find the key, but stop when there is no node to move to.
Add the new node at the spot where you would have moved to if there had been a node.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Iowa
![Page 23: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/23.jpg)
Arizona
Arkansas
Adding
Pretend that you are trying to find the key, but stop when there is no node to move to.
Add the new node at the spot where you would have moved to if there had been a node.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Iowa
![Page 24: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/24.jpg)
Arizona
Arkansas
Adding
Pretend that you are trying to find the key, but stop when there is no node to move to.
Add the new node at the spot where you would have moved to if there had been a node.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Iowa
![Page 25: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/25.jpg)
Arizona
Arkansas
Adding
Pretend that you are trying to find the key, but stop when there is no node to move to.
Add the new node at the spot where you would have moved to if there had been a node.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
reIowa
![Page 26: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/26.jpg)
Arizona
Arkansas
Adding
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
reIowa
Where would you
add this state?
Kazakhstan
![Page 27: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/27.jpg)
Arizona
Arkansas
Adding
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
reIowa
Kazakhstan is thenew right child
of Iowa?
Kazakhstan
![Page 28: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/28.jpg)
Arizona
Arkansas
Removing an Item with a Given Key
Find the item. If necessary, swap the
item with one that is easier to remove.
Remove the item.Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
reIowa
Kazakhstan
![Page 29: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/29.jpg)
Arizona
Arkansas
Removing "Florida"
Find the item.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
reIowa
Kazakhstan
![Page 30: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/30.jpg)
Arizona
Arkansas
Removing "Florida"
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
reIowa
Kazakhstan
Florida cannot beremoved at the
moment...
![Page 31: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/31.jpg)
Arizona
Arkansas
Removing "Florida"
Washington
OklahomaColorado
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
reIowa
Kazakhstan
... because removingFlorida would
break the tree intotwo pieces.
![Page 32: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/32.jpg)
Arizona
Arkansas
Removing "Florida"
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
reIowa
Kazakhstan
The problem ofbreaking the treehappens because
Florida has 2 children.
If necessary, do some rearranging.
![Page 33: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/33.jpg)
Arizona
Arkansas
Removing "Florida"
If necessary, do some rearranging.
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
reIowa
Kazakhstan
For the rearranging,take the smallest itemin the right subtree...
![Page 34: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/34.jpg)
Arizona
Arkansas
Removing "Florida"
Washington
OklahomaColorado
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Iowa
Kazakhstan
Iowa
...copy that smallestitem onto the item
that we're removing...
If necessary, do some rearranging.
![Page 35: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/35.jpg)
Arizona
Arkansas
Removing "Florida"
Washington
OklahomaColorado
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Iowa
Kazakhstan
... and then removethe extra copy of the
item we copied...
If necessary, do some rearranging.
![Page 36: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/36.jpg)
Arizona
Arkansas
Removing "Florida"
Washington
OklahomaColorado
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Iowa
Kazakhstan... and reconnect
the tree
If necessary, do some rearranging.
![Page 37: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/37.jpg)
Arizona
Arkansas
Removing "Florida"
Washington
OklahomaColorado
Florida
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Kazakhstan
Why did I choose
the smallest item
in the right subtree?
![Page 38: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/38.jpg)
Arizona
Arkansas
Removing "Florida"
Washington
OklahomaColorado
Wes
tV
irgi
nia
Mass.
New
Ham
pshi
re
Iowa
Kazakhstan
Because every keymust be smaller than
the keys in itsright subtree
![Page 39: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/39.jpg)
Removing an Item with a Given Key
Find the item. If the item has a right child, rearrange the tree:
Find smallest item in the right subtreeFind smallest item in the right subtree Copy that smallest item onto the one that you Copy that smallest item onto the one that you
want to removewant to remove Remove the extra copy of the smallest item Remove the extra copy of the smallest item
(making sure that you keep the tree connected)(making sure that you keep the tree connected)
else just remove the item.
![Page 40: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/40.jpg)
Binary search trees are a good implementation of data types such as sets, bags, and dictionaries.
Searching for an item is generally quick since you move from the root to the item, without looking at many other items.
Adding and deleting items is also quick. But as you'll see later, it is possible for the
quickness to fail in some cases -- can you see why?
Summary
![Page 41: One of the tree applications in Chapter 10 is binary search trees. In Chapter 10, binary search trees are used to implement bags and sets. This presentation.](https://reader036.fdocuments.us/reader036/viewer/2022062313/56649c915503460f9494bc73/html5/thumbnails/41.jpg)
THE END
Presentation copyright 2010 Addison Wesley Longman,For use with Data Structures and Other Objects Using C++by Michael Main and Walter Savitch.
Some artwork in the presentation is used with permission from Presentation Task Force(copyright New Vision Technologies Inc) and Corel Gallery Clipart Catalog (copyrightCorel Corporation, 3G Graphics Inc, Archive Arts, Cartesia Software, Image ClubGraphics Inc, One Mile Up Inc, TechPool Studios, Totem Graphics Inc).
Students and instructors who use Data Structures and Other Objects Using C++ are welcometo use this presentation however they see fit, so long as this copyright notice remainsintact.