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二叉树层序遍历怎么实现
c++
webacc.exe是什么文件?webacc.exe是不是病毒
WINSYS.vbs是什么文件?WINSYS.vbs是不是病毒
winssh.exe是什么文件?winssh.exe是不是病毒
wt.exe是什么文件?wt.exe是不是病毒
winsysetm.exe是什么文件?winsysetm.exe是不是病毒
winstrve.exe是什么文件?winstrve.exe是不是病毒
winsysupd7.exe是什么文件?winsysupd7.exe是不是病毒
winsysupd.exe是什么文件?winsysupd.exe是不是病毒
winsysupd2.exe是什么文件?winsysupd2.exe是不是病毒
winsysupd8.exe是什么文件?winsysupd8.exe是不是病毒