I pulled this code from a previous program of mine where I was using AVL Trees without using a struct. I think the problem is how I am using the struct when using getLeft() and getRight().
#ifndef BINARYTREE_H
#define BINARYTREE_H
#include <iostream>
using namespace std;
class BinaryTree
{
private:
struct TreeNode
{
string name;
int krabbyPatty;
TreeNode* left;
TreeNode* right;
};
TreeNode* root;
// Private member functions
void insert(TreeNode *&, TreeNode *&);
void destroySubTree(TreeNode *);
//void deleteNode(string n, TreeNode *&);
//void makeDeletion(TreeNode *&);
void displayInOrder(TreeNode *) const;
void display(TreeNode *ptr, int level);
void getTotal(TreeNode *nodePtr, int &total);
void getMost(TreeNode *nodePtr, string& n, int& mostPatties);
void getLeast(TreeNode *nodePtr, string& n, int& leastPatties);
I am getting errors right here saying expression must be a modifiable lvalue for left and right.
public:
// Constructor
BinaryTree()
{
root = NULL;
left = NULL;
right = NULL;
}
// Destructor
~BinaryTree()
{
destroySubTree(root);
}
// Binary tree operations
void insertNode(string, int);
int searchNode(string);
//void remove(string);
void displayInOrder() const
{
displayInOrder(root);
}
void getLeastNumPatties(string&, int&);
void getMostNumPatties(string&, int&);
int getTotalNumPatties();
void displayTree();
The other errors are right here, I assume I am handling the struct wrong.
TreeNode* getLeft()
{
return left;
}
TreeNode* getRight()
{
return right;
}
void setLeft(TreeNode* nodePtr)
{
left = nodePtr;
}
void setRight(TreeNode* nodePtr)
{
right = nodePtr;
}
};
#endif