AVL ツリーでオーバーライドされた関数を呼び出すのに問題があります。BSTツリーからのものを呼び出しています。AVLNode は BinaryNode から派生しているため、これは通常よりも少し混乱します。高さデータ メンバーを追加する必要がありました。それが問題を引き起こしている可能性がありますか、それともそれよりも単純ですか。
class BST
{
public:
Parent():root(NULL) { }
void insert( const string & x, int lineNum, int& count )
{
insert(x, lineNum, root, count);
}
protected:
BinaryNode* root;
void insert( const string & x, int lineNum, Node * & t, int& count )
{//stuff
}
};
class AVL:public BST
{
public:
void insert( const string & x, int lineNum, int& count )
{
cout << "INSERT\n";
insert(x, lineNum, root, count);
}
protected:
AVLNode* root;
void insert( const string & x, int lineNum, AVLNode * & t, int& count )
{
cout << "insert\n";
//different stuff
}
};
class BinaryNode
{//constructors
}
class AVLNode:public BinaryNode
{//constructors
};