I am trying to implement an AVL tree and have come up with the following code.

However, when I try the following, I get an error saying that AvlNode is undeclared.

Can someone help me understand what I am doing wrong? Thanks.Code:`int main()`

{

AVL_Tree eavltree;

AvlNode->element = 86;

Code:`class AVL_Tree`

{

public:

struct AvlNode

{

int element;

AvlNode *left;

AvlNode *right;

int height;

int frequency;

AvlNode( const int & theElement, AvlNode *lt, AvlNode *rt, int h = 0 )

: element( theElement ), left( lt ), right( rt ), height( h ) { }

};

int insert(const int & x, AvlNode * & t );

int remove(int item);

int find(int &item, int &freq);

void display();

int height(AvlNode *t);

int intPathLength();

int Size();

int avgeNodesVisited();

void doubleWithLeftChild(AvlNode* &k3);

void doubleWithRightChild(AvlNode* &k3);

void rotateWithLeftChild(AvlNode* &k2);

void rotateWithRightChild( AvlNode * & k2 );

private:

AvlNode *root; //pointer to root of tree

int tree_height; //current height of tree

int internal_path_length; //Current internal path length of tree

int size; //Current number of nodes in tree

int nodes_visited; //Current number of nodes visited by all finds so far

int search_count; // Number of completed searches performed so far

};