编辑
2023-10-20
数据结构与算法
00
请注意,本文编写于 568 天前,最后修改于 568 天前,其中某些信息可能已经过时。

这是一个简单的二叉树模板示例

C++示例:

cpp
#include <iostream> class TreeNode { public: int data; TreeNode* left; TreeNode* right; TreeNode(int val) : data(val), left(nullptr), right(nullptr) {} }; class BinaryTree { public: TreeNode* root; BinaryTree() : root(nullptr) {} void insert(int val) { root = insertNode(root, val); } TreeNode* insertNode(TreeNode* node, int val) { if (node == nullptr) { return new TreeNode(val); } if (val < node->data) { node->left = insertNode(node->left, val); } else { node->right = insertNode(node->right, val); } return node; } void inorderTraversal(TreeNode* node) { if (node == nullptr) { return; } inorderTraversal(node->left); std::cout << node->data << " "; inorderTraversal(node->right); } }; int main() { BinaryTree tree; tree.insert(5); tree.insert(3); tree.insert(7); tree.insert(2); tree.insert(4); tree.insert(6); tree.insert(8); tree.inorderTraversal(tree.root); return 0; }

C示例:

c
#include <stdio.h> #include <stdlib.h> struct TreeNode { int data; struct TreeNode* left; struct TreeNode* right; }; struct TreeNode* createNode(int val) { struct TreeNode* node = (struct TreeNode*)malloc(sizeof(struct TreeNode)); node->data = val; node->left = NULL; node->right = NULL; return node; } struct TreeNode* insertNode(struct TreeNode* node, int val) { if (node == NULL) { return createNode(val); } if (val < node->data) { node->left = insertNode(node->left, val); } else { node->right = insertNode(node->right, val); } return node; } void inorderTraversal(struct TreeNode* node) { if (node == NULL) { return; } inorderTraversal(node->left); printf("%d ", node->data); inorderTraversal(node->right); } int main() { struct TreeNode* root = NULL; root = insertNode(root, 5); root = insertNode(root, 3); root = insertNode(root, 7); root = insertNode(root, 2); root = insertNode(root, 4); root = insertNode(root, 6); root = insertNode(root, 8); inorderTraversal(root); return 0; }

Go示例:

go
package main import "fmt" type TreeNode struct { data int left *TreeNode right *TreeNode } func createNode(val int) *TreeNode { return &TreeNode{data: val, left: nil, right: nil} } func insertNode(node *TreeNode, val int) *TreeNode { if node == nil { return createNode(val) } if val < node.data { node.left = insertNode(node.left, val) } else { node.right = insertNode(node.right, val) } return node } func inorderTraversal(node *TreeNode) { if node == nil { return } inorderTraversal(node.left) fmt.Print(node.data, " ") inorderTraversal(node.right) } func main() { var root *TreeNode root = insertNode(root, 5) root = insertNode(root, 3) root = insertNode(root, 7) root = insertNode(root, 2) root = insertNode(root, 4) root = insertNode(root, 6) root = insertNode(root, 8) inorderTraversal(root) }

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!