CS301 Assignment No 2
CS301 Assignment No 2
#include<iostream>
#include<stack>
#include<string>
class Book
public:
string title;
string ISBN;
};
class BSTNode
public:
Book book;
BSTNode* right;
BSTNode* left;
};
class BookStack
private:
stack<Book> bookStack;
BSTNode* root;
if ( node == NULL)
return node;
if (node != NULL)
inOrderTraversal(node->left);
cout<<"Book :";
cout<<node->book.title<<"(ISBN: "<<node->book.ISBN<<")\n";
inOrderTraversal(node->right);
public:
BookStack() : root(NULL){}
bookStack.push(newBook);
void pop()
if (!bookStack.empty())
bookStack.pop();
parent = currentNode;
currentNode = currentNode->left;
}
else
currentNode = currentNode->right;
if (currentNode != NULL)
if(parent == NULL)
root = NULL;
parent->left = NULL;
delete currentNode;
else
while(successor->left !=NULL)
{
successor = successor->left;
currentNode->book = successor->book;
popsuccessor(currentNode , successor);
if(parent->left == node)
parent->left == NULL;
else
parent->right == NULL;
delete node;
{
node->book = node->right->book ;
popsuccessor(node , node->right);
else
while(successor->right != NULL)
successor = successor->right;
node->book = successor->book;
popsuccessor(node , successor);
void listBook()
if(root == NULL)
else
inOrderTraversal(root);
}
}
while(currentNode != NULL)
if(title == currentNode->book.title)
return ¤tNode->book;
currentNode = currentNode->left;
else
currentNode = currentNode->right;
return NULL;
};
main()
BookStack library;
Book* foundBook;
int choice;
library.push(Book("Aladdin" , "BC22076888")) ;
while(1)
cin>>choice;
switch(choice)
case 1:
library.listBook();
cout<<"\n\n ";
break;
case 2:
cin.ignore();
getline(cin , title);
getline(cin , ISBN);
library.push(Book(title , ISBN));
cout<<"\n\n ";
break;
case 3:
cin.ignore();
getline(cin , title);
foundBook = library.search(title);
if(foundBook != NULL)
else
break;
case 4:
library.pop();
break;
case 5:
exit(0);
}
}