关注分享主机优惠活动
国内外VPS云服务器

如何实现C++二叉树模板(c++二叉树模板)

以下是用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 ){
返回新节点&ltT & 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 &lt。& 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。& lt"二叉树的顺序遍历是:;
tree . inorderstraversal();

返回0;
}

在这个例子中,我们定义一个节点结构来表示一个二进制树的节点,然后定义一个二叉树类来表示该二叉树。BinaryTree类包含按顺序插入节点和遍历二叉树的方法。在main函数中,我们创建了一个整数二叉树,并执行了一些插入操作和中间顺序遍历操作。您可以根据需要修改代码以适应不同的数据类型和操作。

以上内容来自互联网,不代表本站全部观点!欢迎关注我们:zhujipindao。com

未经允许不得转载:主机频道 » 如何实现C++二叉树模板(c++二叉树模板)

评论 抢沙发

评论前必须登录!