数据结构——树

数据结构------树

树(Tree)是一种常见的数据结构,用于存储具有层级关系的数据。树由一组称为节点(Node)的元素组成,节点之间通过边连接。其中一个节点被称为根节点(Root),根节点没有父节点;其他节点分为内部节点和叶节点,内部节点有至少一个子节点,叶节点没有子节点。

树有许多种类,包括二叉树(Binary Tree)、二叉搜索树(Binary Search Tree)、平衡二叉树(Balanced Binary Tree)等。二叉树是一种特殊的树结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。

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

cpp 复制代码
#include <iostream>

// 二叉树节点定义
struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};

// 前序遍历二叉树
void preOrderTraversal(TreeNode* root) {
    if (root == nullptr) {
        return;
    }

    std::cout << root->val << " ";  // 先访问根节点
    preOrderTraversal(root->left);  // 递归遍历左子树
    preOrderTraversal(root->right);  // 递归遍历右子树
}

int main() {
    // 构建二叉树
    TreeNode* root = new TreeNode(1);
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);

    // 前序遍历二叉树
    std::cout << "前序遍历结果:";
    preOrderTraversal(root);
    std::cout << std::endl;

    return 0;
}

上述示例中,定义了一个简单的二叉树结构 TreeNode,每个节点包含一个整数值 val,以及指向左子节点和右子节点的指针 left 和 right。程序提供了一个函数 preOrderTraversal 来实现二叉树的前序遍历,即先访问根节点,然后递归遍历左子树和右子树。

在 main 函数中,首先构建了一个二叉树,包含了节点值为 1、2、3、4 和 5 的节点,并建立了它们之间的关系。然后,调用 preOrderTraversal 函数对该二叉树进行前序遍历,并输出遍历结果。输出结果为:

bash 复制代码
前序遍历结果:1 2 4 5 3

这个示例展示了二叉树的基本操作,包括构建二叉树和前序遍历。二叉树常用于各种问题的建模和解决,例如表达式求值、排序算法、图算法等。通过递归或迭代的方式,可以对二叉树进行不同的遍历,如前序遍历、中序遍历、后序遍历、层序遍历等。

相关推荐
SelectDB技术团队1 小时前
Apache Doris 高性能 Open Lake Variant 读写技术解析(含对比数据)
数据结构·数据库·clickhouse·日志·apache doris·selectdb·湖仓架构升级
kiracrimson2 小时前
希尔排序:让插入排序不再怕逆序
数据结构·算法·排序算法
Logic1012 小时前
C语言/数据结构位运算题解:异或XOR找出星球探险中的“独特能量石“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
hnjzsyjyj4 小时前
洛谷 P1339:[USACO09OCT] Heat Wave G ← Bellman-Ford 算法
数据结构·bellman-ford 算法
SelectDB技术团队6 小时前
ClickHouse 存日志的能力边界:并发、检索与 trace 回放的实测对照
数据结构·数据库·clickhouse·日志分析·apache doris·日志存储
垆边人似月.6 小时前
华为算法题:最长连续递增子序列的变
数据结构·算法·leetcode
w_zero_one6 小时前
链表(2)
java·数据结构·链表
kukubuzai7 小时前
二分查找系列一
数据结构·算法·leetcode
wzdark7 小时前
算法与数据结构教学的可视化新模式探索4
数据结构
hzxpaipai8 小时前
企业官网后台怎么设计?从产品分类、参数到资料下载的数据结构
数据结构