









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Complete the line of code to create a new. BSTNode object with int data on the heap and assign nodePtr to point to it. 9. BSTNode<int>* nodePtr. BST, with ...
Typology: Lecture notes
1 / 17
This page cannot be seen from the preview
Don't miss anything!
Pa02 released!
Its about implementing a BST with a movie data set, collecting and
analyzing running time!
Part of the assignment involves writing a report, explaining the trends
in your data
Due 06/
Start early!
Midterm grades released!
Max: 55/50 (5 students)
Median: 90%
Mean: 88%
Announcements
Suppose your program uses 100,000,000 different data types,
and you need a maximum function for each...
int maximum(Knafn a, Knafn b)
if (a > b)
return a;
else
return b;
One Hundred Million Functions...
int maximum(Foo a, Foo b)
if (a > b)
return a;
else
return b;
int maximum(Poo a, Poo b) }
if (a > b)
return a;
else
return b;
int maximum(Noo a, Noo b)
if (a > b)
return a;
else
return b;
int maximum(Moo a, Moo b)
if (a > b)
return a;
else
return b;
int maximum(Loo a, Loo b)
if (a > b)
return a;
else
return b;
int maximum(Koo a, Koo b)
if (a > b)
return a;
else
return b;
int maximum(Joo a, Joo b)
if (a > b)
return a;
else
return b;
int maximum(Ioo a, Ioo b)
if (a > b)
return a;
else
return b;
int maximum(Hoo a, Hoo b)
if (a > b)
return a;
else
return b;
int maximum(Goo a, Goo b)
if (a > b)
return a;
else
return b;
int maximum(Doo a, Doo b)
if (a > b)
return a;
else
return b;
int maximum(Coo a, Coo b)
if (a > b)
return a;
else
return b;
int maximum(Boo a, Boo b)
if (a > b)
return a;
else
return b;
int maximum(Knafn a, Knafn b)
if (a > b)
return a;
else
return b;
int maximum(Foo a, Foo b)
if (a > b)
return a;
else
return b;
int maximum(Poo a, Poo b) }
if (a > b)
return a;
else
return b;
int maximum(Noo a, Noo b)
if (a > b)
return a;
else
return b;
int maximum(Moo a, Moo b)
if (a > b)
return a;
else
return b;
int maximum(Loo a, Loo b)
if (a > b)
return a;
else
return b;
int maximum(Koo a, Koo b)
if (a > b)
return a;
else
return b;
int maximum(Joo a, Joo b)
if (a > b)
return a;
else
return b;
int maximum(Ioo a, Ioo b)
if (a > b)
return a;
else
return b;
int maximum(Hoo a, Hoo b)
if (a > b)
return a;
else
return b;
int maximum(Goo a, Goo b)
if (a > b)
return a;
else
return b;
int maximum(Doo a, Doo b)
if (a > b)
return a;
else
return b;
int maximum(Coo a, Coo b)
if (a > b)
return a;
else
return b;
int maximum(Boo a, Boo b)
if (a > b)
return a;
else
return b;
int maximum(Knafn a, Knafn b)
if (a > b)
return a;
else
return b;
int maximum(Foo a, Foo b)
if (a > b)
return a;
else
return b;
int maximum(Poo a, Poo b)
if (a > b)
return a;
else
return b;
int maximum(Noo a, Noo b)
if (a > b)
return a;
else
return b;
int maximum(Moo a, Moo b)
if (a > b)
return a;
else
return b;
int maximum(Loo a, Loo b)
if (a > b)
return a;
else
return b;
int maximum(Koo a, Koo b)
if (a > b)
return a;
else
return b;
int maximum(Joo a, Joo b)
if (a > b)
return a;
else
return b;
int maximum(Ioo a, Ioo b)
if (a > b)
return a;
else
return b;
int maximum(Hoo a, Hoo b)
if (a > b)
return a;
else
return b;
int maximum(Goo a, Goo b)
if (a > b)
return a;
else
return b;
int maximum(Doo a, Doo b)
if (a > b)
return a;
else
return b;
int maximum(Coo a, Coo b)
if (a > b)
return a;
else
return b;
int maximum(Boo a, Boo b)
if (a > b)
return a;
else
return b;
int maximum(int a, int b)
{
if (a > b)
return a;
else
return b;
}
When you write a template function, you choose a data type
for the function to depend upon...
template
Item maximum(Item a, Item b)
{
if (a > b)
return a;
else
return b;
}
A Template Function for Maximum
BST, with templates:
template
class BSTNode {
public:
BSTNode left;*
BSTNode right;*
BSTNode parent;*
Data const data;
BSTNode( const Data & d ) :
data(d) {
left = right = parent = nullptr ;
}
};
How would you create a BSTNode object on
the runtime stack?
A. BSTNode n(10);
B. BSTNode
C. BSTNode
D. BSTNode
E. More than one of these will work
{ } syntax OK too
How would you create a pointer to
BSTNode with integer data?
A. BSTNode* nodePtr;
B. BSTNode
C.BSTNode
BST, with templates:
template
class BSTNode {
public:
BSTNode left;*
BSTNode right;*
BSTNode parent;*
Data const data;
BSTNode( const Data & d ) :
data(d) {
left = right = parent = nullptr ;
}
};
Working with a BST
template
class BST {
private:
BSTNode* root; //Pointer to the root of this BS
public:
/** Default constructor. Initialize an empty BST. */
BST() : root(nullptr){ }
void insertAsLeftChild(BSTNode* parent, const Data& item){
// Your code here
}
Working with a BST: Insert
//Assume this is inside the definition of the class
void insertAsLeftChild(BSTNode* parent, const Data& item)
{
// Your code here
}
Which line of code correctly inserts the data item into the BST as the left
child of the parent parameter.
A.parent.left = item;
B.parent->left = item;
C.parent->left = BSTNode(item);
D.parent->left = new BSTNode(item);
E.parent->left = new Data(item);
template
Item maximum(Item a, Item b)
{
if (a > b)
return a;
else
return b;
}
What is difference between templates and typedefs?
typedef int item;
item maximum(item a, item b)
{
if (a > b)
return a;
else
return b;
}
Demo maximum.cpp
Template classes: Non-member functions
template
BST
BST operator+(const BST& b1, const BST&b2);
Template classes: Including the implementation
//In bst.h
class BST{
//code
};
#include "bst.cpp"
Review and demo an example