您的位置:首页 > 编程语言 > C语言/C++

C++采用类模板实现二叉树以及谦虚遍历

2013-10-28 23:00 267 查看
#include <iostream>

#include <string>

using namespace std;

//二叉树结点定义

template<typename T>

class Binarynode

{
protected:
Binarynode<T> *left,*right;
public:
Binarynode():left(NULL),right(NULL){};//不赋值的构造函数
Binarynode(const T& item)
//赋值构造函数
{
data=item;
left=NULL;
right=NULL;
};
T data;
Binarynode<T> * &Left()//取left
{
return left;
}
Binarynode<T> * &Right()//取right
{
return right;
}

};

//前序遍历二叉树

template<typename T>

void First(Binarynode<T> *t)

{
if(t)
{
cout<<t->data<<" ";
First(t->Left());
First(t->Right());
}

}

int main()

{
/*
生成一棵二叉树

    19
12    23
 13   45
*/
Binarynode<int> *root=new Binarynode<int>(19);
Binarynode<int> *p=new Binarynode<int>(12);
root->Left()=p;

p=new Binarynode<int>(23);
root->Right()=p;

p=new Binarynode<int>(13);
root->Left()->Left()=p;

p=new Binarynode<int>(45);
root->Left()->Right()=p;

//调用遍历函数
First(root);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: