Я создаю простое дерево AVL и получаю следующую ошибку компилятора из GCC:
ошибка: ожидаемый конструктор, деструктор или преобразование типа до маркера '*'
И min, иМаксимальные объявления функций в файле реализации получают ошибки.
следующие две функции-члена являются предметом спора:
template <typename T>
tree_t<T>::node_t* tree_t<T>::min(node_t* t) const
{
node_t *temp = t;
while(temp->left != NULL)
{
temp = temp->left;
}
return temp;
}
template <typename T>
tree_t<T>::node_t* tree_t<T>::min(tree_t<T>::node_t*) const
{
node_t *temp = t;
while(temp->left != NULL)
{
temp = temp->left;
}
return temp;
}
Вот объявление: public:
node_t* min(node_t* t) const;
node_t* max(node_t* ) const;
Вот класс и объявление структуры node_t
template <typename T>
class tree_t
{
private:
struct node_t
{
T data;
node_t *left;
node_t *right;
int height;
int bal;
node_t(const T& Element, node_t *lt, node_t *rt, int h = 0)
: data(Element), left(lt), right(rt), height(h) {};
};
node_t * root;