C++二叉树模板怎么实现


以下是一个用C++模板实现的二叉树的例子:

#include <iostream>template <typename T>struct Node {T data;Node<T>* left;Node<T>* right;Node(T val) : data(val), left(nullptr), right(nullptr) {}};template <typename T>class BinaryTree {private:Node<T>* root;public:BinaryTree() : root(nullptr) {}void insert(T val) {root = insertNode(root, val);}void inorderTraversal() {inorderTraversal(root);}private:Node<T>* insertNode(Node<T>* root, T val) {if (root == nullptr) {return new Node<T>(val);}if (val < root->data) {root->left = insertNode(root->left, val);} else {root->right = insertNode(root->right, val);}return root;}void inorderTraversal(Node<T>* root) {if (root != nullptr) {inorderTraversal(root->left);std::cout << root->data << " ";inorderTraversal(root->right);}}};int main() {BinaryTree<int> tree;tree.insert(5);tree.insert(3);tree.insert(8);tree.insert(1);tree.insert(4);std::cout << "Inorder traversal of the binary tree is: ";tree.inorderTraversal();return 0;}

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


上一篇:java二叉树层序遍历怎么实现

下一篇:java怎么获取字符串首次出现位置


c++
Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器