Write the definition of a (recursive) member function of the BinarySearch Tree 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. Edit Format Table 12pt v Paragraph v |BIUA

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
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`.
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**:
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
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Types of trees
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
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education