VS2010中写C++程序,错误LNK2019,不知道原因,求助。。。

/***********************************************main.cpp*****************************... /***********************************************
main.cpp
***********************************************/
#include <iostream>#include "binarySearchTree.h"
using namespace std;
int main(){ int temp; BinarySearchTree<int> bsTree; for (int i = 0; i < 10; i++) { cout<<"输入结点数据"<<endl; cin>>temp; bsTree.Insert(10); }
system("pause"); return 0;}
编译产生错误,不知道什么原因

/************************************************************
二叉排序树头文件
************************************************************/#pragma once
//二叉查找树结点template <typename DataType>struct BinarySearchTreeNode{ DataType data; struct BinarySearchTreeNode *plChild; struct BinarySearchTreeNode *prChild;};
template <typename DataType>class BinarySearchTree{public: BinarySearchTree(BinarySearchTreeNode<DataType> *pRoot = NULL) :m_pRoot(pRoot){ } ~BinarySearchTree(){ }
int Insert(const DataType data); int Delete(const DataType data); BinarySearchTreeNode<DataType>* Find(const DataType data); BinarySearchTreeNode<DataType>* FindMax(); BinarySearchTreeNode<DataType>* FindMin();
void ShowInOrder(); int GetNodeQuantity(); int GetDepth();
private: int Insert(const DataType data, BinarySearchTreeNode<DataType> *p); int Delete(const DataType data, BinarySearchTreeNode<DataType> *p); BinarySearchTreeNode<DataType>* Find(const DataType data, BinarySearchTreeNode<DataType> *p); BinarySearchTreeNode<DataType> *FindMax(BinarySearchTreeNode<DataType> *p); BinarySearchTreeNode<DataType> *FindMin(BinarySearchTreeNode<DataType> *p);
void ShowInMidOrder(BinarySearchTreeNode<DataType> *p);
private: BinarySearchTreeNode<DataType>* m_pRoot; int m_nQuantity; //结点数量 int m_tDepth; //树的深度};

/************************************************************
文件:二叉排序树的实现
************************************************************/#include <iostream>#include "binarySearchTree.h"using namespace std;
//pubilctemplate <typename DataType>int BinarySearchTree<DataType>::Insert(const DataType data){ return Insert(data, m_pRoot);}
template <typename DataType>int BinarySearchTree<DataType>::Insert(const DataType data, BinarySearchTreeNode<DataType> *p){ if (p == NULL) //找到位置 { p = new BinarySearchTreeNode; p->data = data; p->plChild = NULL; p->prChild = NULL; return 0; }
if (data < p->data) Insert(data, p->plChild); else Insert(data, p->prChild);}
...
展开
 我来答
空雪梦见
2013-10-09 · TA获得超过5596个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1154万
展开全部
那啥,模板的实现不能这样分开写在一个CPP里,否则编译器不会根据模板来生成实现。一般的做法是直接写在头文件里面
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式