Database System Concepts
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
Bartleby Related Questions Icon

Related questions

Question
Write the definition of a (recursive) member function of the `BinarySearchTree` class named `countGreaterThan` that takes a parameter `n` of type `elemType` and returns the number of nodes whose `data` field is greater than parameter `n`.
expand button
Transcribed Image Text:Write the definition of a (recursive) member function of the `BinarySearchTree` class named `countGreaterThan` that takes a parameter `n` of type `elemType` and returns the number of nodes whose `data` field is greater than parameter `n`.
```cpp
// BinaryTree.h
#include <iostream>
using namespace std;

// Definition of the Node
template <class elemType>
struct TreeNode {
    elemType data;
    TreeNode<elemType> *left;
    TreeNode<elemType> *right;
};

// Definition of class Binary Tree
template <class elemType>
class BinaryTree {
protected:
    TreeNode<elemType> *root;
public:
    BinaryTree();
    BinaryTree(const BinaryTree<elemType>& otherTree);
    ~BinaryTree();
    bool isEmpty() const;
    virtual bool search(const elemType& searchItem) const = 0;
    virtual void insert(const elemType& insertItem) = 0;
    virtual void deleteNode(const elemType& deleteItem) = 0;
private:
    int height(TreeNode<elemType> *p) const;
    int nodeCount(TreeNode<elemType> *p) const;
    int leafCount(TreeNode<elemType> *p) const;
};


// BinarySearchTree.h
#include "BinaryTree.h"
using namespace std;

template <class elemType>
class BinarySearchTree: public BinaryTree<elemType> {
public:
    bool search(const elemType& searchItem) const;
    void insert(const elemType& insertItem);
    void deleteNode(const elemType& deleteItem);
private:
    void displayAscending(TreeNode<elemType> *p) const;
    TreeNode<elemType> * getTreeMax(TreeNode<elemType> *p) const;
    TreeNode<elemType> * getTreeMin(TreeNode<elemType> *p) const;
};
```

### Explanation

This code represents the class specifications for a `BinaryTree` class and a `BinarySearchTree` class in C++. These classes are for managing binary trees and binary search trees, respectively.

- **TreeNode Structure**: This template structure holds the data for each node and pointers to left and right child nodes.

- **BinaryTree Class**:
  - Inherits the `TreeNode` structure.
  - Protected member `root` points to the root of the tree.
  - Public member functions include constructors, destructors, and methods to check if the tree is empty, search, insert, and delete nodes.
  - Private member functions calculate the height, the number of nodes, and the number of leaf nodes.

- **BinarySearchTree Class**:
expand button
Transcribed Image Text:```cpp // BinaryTree.h #include <iostream> using namespace std; // Definition of the Node template <class elemType> struct TreeNode { elemType data; TreeNode<elemType> *left; TreeNode<elemType> *right; }; // Definition of class Binary Tree template <class elemType> class BinaryTree { protected: TreeNode<elemType> *root; public: BinaryTree(); BinaryTree(const BinaryTree<elemType>& otherTree); ~BinaryTree(); bool isEmpty() const; virtual bool search(const elemType& searchItem) const = 0; virtual void insert(const elemType& insertItem) = 0; virtual void deleteNode(const elemType& deleteItem) = 0; private: int height(TreeNode<elemType> *p) const; int nodeCount(TreeNode<elemType> *p) const; int leafCount(TreeNode<elemType> *p) const; }; // BinarySearchTree.h #include "BinaryTree.h" using namespace std; template <class elemType> class BinarySearchTree: public BinaryTree<elemType> { public: bool search(const elemType& searchItem) const; void insert(const elemType& insertItem); void deleteNode(const elemType& deleteItem); private: void displayAscending(TreeNode<elemType> *p) const; TreeNode<elemType> * getTreeMax(TreeNode<elemType> *p) const; TreeNode<elemType> * getTreeMin(TreeNode<elemType> *p) const; }; ``` ### Explanation This code represents the class specifications for a `BinaryTree` class and a `BinarySearchTree` class in C++. These classes are for managing binary trees and binary search trees, respectively. - **TreeNode Structure**: This template structure holds the data for each node and pointers to left and right child nodes. - **BinaryTree Class**: - Inherits the `TreeNode` structure. - Protected member `root` points to the root of the tree. - Public member functions include constructors, destructors, and methods to check if the tree is empty, search, insert, and delete nodes. - Private member functions calculate the height, the number of nodes, and the number of leaf nodes. - **BinarySearchTree Class**:
Expert Solution
Check Mark
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education