以下是用C++模板实现的二叉树的示例:
# include & ltiostream & gt
模板& lt键入名称T & gt
结构节点{
测试数据;
节点& ltT & gt*左侧;
节点& ltT & gt*对;
node(T val):data(val),left(nullptr),right(nullptr){ }
};
模板& lt键入名称T & gt
BinaryTree类{
私人:
节点& ltT & gt*根;
公共:
binary tree():root(nullptr){ }
空镶件(T值){
root = insert node(root,val);
}
void inorderTraversal(){
inorderTraversal(root);
}
私人:
节点& ltT & gt* insert Node(Node & lt;T & gt*根,T值)
if(root = = nullptr ){
返回新节点<T & gt(val);
}
if(val & lt;root-& gt;数据){
root-& gt;left = insert node(root-& gt;左,瓦尔);
}否则{
root-& gt;right = insert node(root-& gt;对吧,瓦尔);
}
返回根;
}
void in order traversal(Node & lt;T & gt*根){
如果(根!= nullptr ){
in order traversal(root-& gt;左);
std::cout <。& ltroot-& gt;数据& lt& lt"";
in order traversal(root-& gt;对);
}
}
};
int main() {
双星树& ltint & gt树;
tree . insert(5);
tree . insert(3);
tree . insert(8);
tree . insert(1);
tree . insert(4);
std::cout <。& lt"二叉树的顺序遍历是:;
tree . inorderstraversal();
返回0;
}
在这个例子中,我们定义一个节点结构来表示一个二进制树的节点,然后定义一个二叉树类来表示该二叉树。BinaryTree类包含按顺序插入节点和遍历二叉树的方法。在main函数中,我们创建了一个整数二叉树,并执行了一些插入操作和中间顺序遍历操作。您可以根据需要修改代码以适应不同的数据类型和操作。
以上内容来自互联网,不代表本站全部观点!欢迎关注我们:zhujipindao。com
评论前必须登录!
注册