Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

can not use copyHelper, buildHelper function and so on I just needed a .cpp file

ID: 3725510 • Letter: C

Question

can not use copyHelper, buildHelper function and so on

I just needed a .cpp file for these function please


// Laboratory 8 ExpressionTree.h
//
// Class declarations for the linked implementation of the
// Expression Tree ADT -- including the recursive helpers for the
// public member functions
//
// Instructor copy with the recursive helper function declarations.
// The student version does not have those, but has a place to write
// the declarations in the private section.
//
//--------------------------------------------------------------------

#ifndef EXPRESSIONTREE_H
#define EXPRESSIONTREE_H

#include <stdexcept>
#include <iostream>

using namespace std;

template <typename DataType>
class ExprTree {
public:

    // Constructor
    ExprTree ();
    ExprTree(const ExprTree& source);

    ExprTree& operator=(const ExprTree& source);

    // Destructor
    ~ExprTree ();

    // Expression tree manipulation operations
    void build ();
    void expression () const;
    DataType evaluate() const throw (logic_error);
    void clear ();              // Clear tree
    void commute();
    bool isEquivalent(const ExprTree& source) const;

    // Output the tree structure -- used in testing/debugging
    void showStructure () const;

private:

    class ExprTreeNode {
      public:
        // Constructor
        ExprTreeNode ( char elem,
                       ExprTreeNode *leftPtr, ExprTreeNode *rightPtr );

        // Data members
        char dataItem;          // Expression tree data item
        ExprTreeNode *left,     // Pointer to the left child
                     *right;    // Pointer to the right child
    };

    // Recursive helper functions for the public member functions -- insert
    // prototypes of these functions here.

    // Data member
    ExprTreeNode *root;   // Pointer to the root node
};

#endif  // #ifndef EXPRESSIONTREE_H

Explanation / Answer

Helper Functions:

ought not be presented to the customer. Try not to announce them in tree.h, and make them static to tree.c.

•treeAddHelper

is shockingly difficult to take after, for the most part since it returns root by esteem and by means of a contention. Select one strategy, ideally returning by esteem:

.
struct node
{
    int data;
    struct node* left;
    struct node* right;
};

unsigned int getLeafCount(struct node* node)
{
if(node == NULL)      
    return 0;
if(node->left == NULL && node->right==NULL)     
    return 1;           
else
    return getLeafCount(node->left)+
           getLeafCount(node->right);     
}

/* Helper function that allocates a new node with the
   given data and NULL left and right pointers. */
struct node* newNode(int data)
{
struct node* node = (struct node*)
                       malloc(sizeof(struct node));
node->data = data;
node->left = NULL;
node->right = NULL;
  
return(node);
}

/*Driver program to test above functions*/
int main()
{

struct node *root = newNode(1);
root->left        = newNode(2);
root->right       = newNode(3);
root->left->left = newNode(4);
root->left->right = newNode(5);   
  
printf("Leaf count of the tree is %d", getLeafCount(root));
  
getchar();
return 0;
}
.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at drjack9650@gmail.com
Chat Now And Get Quote