Pour les débutants c'est le devoir, j'ai juste vraiment besoin d'aide avec un arbre de recherche binaire. Le programme est d'afficher le polymorphisme, en utilisant la personne comme une classe de base abstraite, et d'autres types de personnes qui héritent de la personne. Chaque personne a un nom de famille, et j'essaie d'utiliser un arbre de recherche binaire pour alphabétiser les gens par nom de famille.C++ Homework - Arbre de recherche binaire Aide
J'ai écrit ce que je pense devrait être un arbre de recherche binaire acceptable, mais je reçois toujours des erreurs. L'arbre de recherche binaire n'a besoin que d'une fonction insert et traverse. Ce qui devrait être récursif.
L'erreur que je reçois est: Erreur 19 Erreur C4430: Type manquant spécificateur - int supposé bst.cpp
Cela se produit à la ligne 51, 64 et 70. Voici mon code:
tête fichier:
#ifndef BST_H
#define BST_H
template <class T>
class BST
{
private:
class BinNode
{
public:
BinNode(void);
BinNode(T node);
BinNode *left;
BinNode *right;
T data;
};
BinNode* root;
public:
BST();
~BST();
void insert(const T &);
void traverse();
void visit(BinNode *);
//Utlity Functions
private:
void insertAux(BinNode* &, BinNode *);
void traverseAux(BinNode *, ostream &);
};
#include "BST.cpp"
#endif
fichier de mise en œuvre:
#include <iostream>
#include <string>
using namespace std;
#ifdef BST_H
template <class T>
BST<T>::BinNode::BinNode()
{
left = right = 0;
}
template <class T>
BST<T>::BinNode::BinNode(T node)
{
left = right = 0;
data = node;
}
template <class T>
BST<T>::BST()
{
root = 0;
}
template <class T>
void BST<T>::insertAux(T i, BinNode* &subRoot)
{
//inserts into empty tree
if(subRoot == 0)
subRoot = new BinNode(i);
//less then the node
else if(i<subRoot->data)
insertAux(i, subRoot->left);
//greater then node
else
insertAux(i, subRoot->right);
}
template <class T>
void BST<T>::insert(const T &i)
{
insertAux(T i, root)
}
template <class T>
BST<T>::traverse()
{
traverseAux(root);
}
template <class T>
BST<T>::traverseAux(BinNode *subRoot)
{
if (subRoot == 0)
return;
else
{
traverseAux(subRoot->left);
visit(subRoot);
traverseAux(subRoot->right);
}
}
template <class T>
BST<T>::visit(BinNode *b)
{
cout << b->data << endl;
}
#endif
Si quelqu'un pouvait jeter un coup d'oeil rapide à ceci pour moi et me donner quelques conseils? Cela m'embrouille vraiment en ce moment. Merci!
Veuillez indiquer clairement la (les) ligne (s) sur laquelle vous avez des erreurs. Ne nous fais pas compter. –
'spécificateur de type manquant' - je me demande ce qu'il manque :) –