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

PLEASE USE tree.h and tree_main.cpp provided below to implement a TREE ADT . In

ID: 3867135 • Letter: P

Question

PLEASE USE tree.h and tree_main.cpp provided below to implement a TREE ADT .

In this Assignment. You will be implementing your own Tree ADT.

Please download the tree.h file which has all the methods for you to implement and Do not modify the tree.h file.

I have also provided tree_main.cpp file to test your program functionality. It should be fairly simple assignment.

Please submit your header file and two.cp files(Implementation and main.cpp files) as a zip file with your name.

/**** tree.h****/

#ifndef _TREE_H

#define _TREE_H

#include <cstdlib> // necessary in order to use NULL

class TreeNode

{

public:

   TreeNode() : left(NULL), right(NULL) {}

   TreeNode* left;

   TreeNode* right;

   int value;

};

class Tree

{

public:

   // Default constructor

   Tree();

   // Copy constructor

   Tree(const Tree& other);

   //Destructor

   ~Tree();

   // overloaded Assignment Operator

   Tree& operator=(const Tree& other);

   // Similar to insert function we discussed earlier

   // creates node and inserts it at appropriate position.

   void push(int value);

   // Returns the address of the node containing the value.

   TreeNode* find(int value) const;

   // Print the tree data

   void print() const;

   // Deletes the node with value in the tree and deallocates its memory.

   void deleteNode(int value);

private:

   // Root of the tree.

   TreeNode* start;

   //copyOther

// you should implement and use this helper function inside your

// copy constructor and overloadedAssignment operator.

   void copyOther(const Tree& other);

   // clear

// you should implement and use this function inside your

// destructor to delete all the nodes and free memory

   void clear();

   // pushFrom

// Recursively push a single element into a tree.

// Use it in your push function.

   void pushFrom(TreeNode* startingPoint, TreeNode* nodeToPush);

  

   // findFrom

// Recursively find a single element in a tree.

   TreeNode* findFrom(TreeNode* startingPoint, int value) const;

   // printFrom

//

// Recursively print the values in a tree. Use

// pre-order traversal.

//

// If a tree looks like this:

//

// 6

// /

// /

// 5 8

// / /

// / /

// 0 7 9

//

// then it should be printed like this:

//

// 6

// 5

// 0

// 8

// 7

// 9

//

// Helper function that you should use inside your print function

   void printFrom(TreeNode* startintPoint, int numSpaces) const;

   // copyFrom

// Recursively copy another tree's nodes. Use

// pre-order traversal. Use this in CopyOther function.

   void copyFrom(TreeNode* startintPoint);

   // deleteFrom

// should implement and use in the delete function.

// Deletes the node with the value specified in the below function.

   void deleteFrom(TreeNode* startintPoint, int value);

   // clearFrom

// Recursively delete nodes. Use post-order traversal.

   // Use it in clear function.

   void clearFrom(TreeNode* startingPoint);

};

#endif

/**** tree_main.cpp****/

#include "tree.h"

#include <iostream>

using namespace std;

int main()

{

   Tree t;

   t.push(4);

   t.push(2);

   t.push(1);

   t.push(3);

   t.push(6);

   t.push(5);

   cout<<"t is : "<<endl;

   t.print();

   Tree t3(t);

   t3.push(7);

   cout<<"t is : "<<endl;

   t.print();

   cout<<"t3 is : "<<endl;

   t3.print();

   Tree t2;

   t2.push(2);

   t2.push(1);

   t2.push(3);

   t2 = t;

   t2.push(8);

   t2.push(9);

   t2.push(11);

   cout<<"t2 is : "<<endl;

   t2.print();

   cout<<"t is : "<<endl;

   t.print();

   t2.deleteNode(1);

   t2.deleteNode(5);

   cout<<"t2 is : "<<endl;

   t2.print();

  

   TreeNode *node = t.find(5);

   cout << "found: " << node->value << endl;

   node = t.find(100000);

   cout << "t.find(100000): " << node << endl;

}

Explanation / Answer

/**** tree.h****/

#ifndef TREE_H

#define TREE_H

#include <iostream>

using namespace std;

// Define a structure to be used as the tree node

struct TreeNode

{

    int      Key;

    float    fValue;

    int      iValue;

    char     cArray[7];

    TreeNode *left;

    TreeNode *right;

};

class Tree

{

    private:

        TreeNode *root;

    public:

        Tree();

        ~Tree();

        bool isEmpty();

        TreeNode *SearchTree(int Key);

        bool Insert(TreeNode *newNode);

        bool Insert(int Key, float f, int i, char *cA);

        bool Delete(int Key);

        void PrintOne(TreeNode *T);

        void PrintTree();

    private:

        void ClearTree(TreeNode *T);

        TreeNode *DupNode(TreeNode * T);

        void PrintAll(TreeNode *T);

};

#endif

/**** tree_implement.cpp****/

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