65,210
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
template<typename T>
struct BTNode
{
BTNode():lChild(NULL),rChild(NULL)
{
}
BTNode(const T&x):element(x), lChild(NULL),rChild(NULL)
{
}
BTNode(const T&x,BTNode<T>* l,BTNode<T>* r):element(x), lChild(l),rChild(r)
{
}
//————————————————————————
T element;
BTNode<T>* lChild;
BTNode<T>* rChild;
};
//————————————————————二叉树类
template<typename T>
class Tree
{
public:
Tree():root(NULL){}
~Tree(){}
bool IsEmpty() const;
bool Root(T &x) const;
void maketree(const T &x, Tree<T>&left, Tree<T>&right);
void breaktree(const T &x, Tree<T>&left, Tree<T>&right);
void PreOrder(void(*vist)(T &x));
void InOrder(void(*vist)(T &x));
void PostOrder(void(*vist)(T &x));
void Clear();
protected:
BTNode<T>* root;
private:
void Clear(BTNode<T> *t);
void PreOrder(void(*vist)(T &x),BTNode<T> *t);
void InOrder(void(*vist)(T &x),BTNode<T> *t);
void PostOrder(void(*vist)(T &x),BTNode<T> *t);
};
template<typename T>
bool IsEmpty(){}
template<typename T>
bool Root(T &x)
{
if (root){ //错误出在这里,编译器说root未定义。
x = root->element;
return true;
}
else return false;
}
template<typename T>
void maketree(const T &x, Tree<T>&left, Tree<T>&right) {}
template<typename T>
void breaktree(const T &x, Tree<T>&left, Tree<T>&right) {}
template<typename T>
void PreOrder(void(*vist)(T &x)){}
template<typename T>
void InOrder(void(*vist)(T &x)){}
template<typename T>
void PostOrder(void(*vist)(T &x)){}
template<typename T>
void Clear(){}
template<typename T>
void Clear(BTNode<T> *t){}
template<typename T>
void PreOrder(void(*vist)(T &x),BTNode<T> *t){}
template<typename T>
void InOrder(void(*vist)(T &x),BTNode<T> *t){}
template<typename T>
void PostOrder(void(*vist)(T &x),BTNode<T> *t){}
int main()
{
BTNode<char> xx;
Tree<char> a,b,x,y,z;
system("pause");
return 0;
}
bool Tree<T>::Root(T &x)const
{
if (root){
x = root->element;
return true;
}
else return false;
}
template<typename T>
bool Tree::Root(T &x) const
{
template<typename T>
bool Tree::Root(T &x)
{
template<typename T>
bool Root(const T &x) const // 这里加const
{
if (root){ //错误出在这里,编译器说root未定义。
x = root->element;
return true;
}
else return false;
}