이진 검색 트리에 노드를 삽입하는 데 문제가 있습니다. 나는cpp를 사용하여 노드를 이진 검색 트리에 삽입
오류 LNK2019가 계속 : 확인되지 않은 외부 기호를 "공개 : __thiscall 나무 :: 나무 (무효)"(? ?? 0 $ 트리 @ H @@ QAE @ XZ)
누군가가 말해 줄래 무엇 문제는 제발.
treenode.h
template <class T> class tree;
//treenode class-template definition
template <class T>
class treenode
{
friend class tree<T>;
public:
treenode(const T &d, treenode<T> *l, treenode<T> *r)
: data(d), leftptr(l), rightptr(r)
{
}
treenode(const T &d):
leftptr(0),
data(d),
rightptr(0)
{
}
T getData() const
{
return data;
}
private:
treenode<T> *leftptr;
T data;
treenode<T> *rightptr;
};//end class treenode
tree.h
class tree
{
public:
tree(); //initializes the private data member
void insertNode (treenode<T> **, const T &);
void preOrderTraversal(treenode<T> *) const;
void postOrderTraversal(treenode<T> *) const;
void inorderTraversal(treenode<T> *) const;
private:
treenode<T> *rootptr;
};
tree.cpp
#include <iostream>
#include "tree.h"
using namespace std;
//constructor
template< class T>
tree<T>::tree()
{
rootptr = 0; //indicate tree is initially empty
}//end tree constructor
//insert node in tree
template <class T>
void tree<T>::insertNode(treenode<T> **rootptr, const T &val)
{
// subtree is empty; create new treenode containing value
if(*rootptr == 0)
*rootptr = new treenode<T>(val);
else // subtree is not empty
{
// data to insert is less than data in current node
if(val < (*rootptr)->data)
{
insertNode(&((*rootptr)->leftptr), val);
}
else
{
// data to insert is greater than data in current node
if(val > (*rootptr)->data)
{
insertNode(&((*rootptr)->rightptr), val);
}
}//end else
}//end else
}//end function insertNode
tester.cpp
int main()
{
tree <int> create;
int userVal;
cout << "Enter 10 Integers" << "\n\n";
for(int i=0; i<10; i++)
{
cout << "-> ";
cin >> userVal;
createTree.insertNode(0, userVal);
}
system("pause");
return 0;
}//end main
'tree' 정의 앞에'template'이 없습니다. 귀하의 질문에 간단하게 누락 된 것으로 가정하지만, 경우에 따라 신호를 보내고 있습니다. –
didierc