「二叉树」是一种非线性数据结构,代表着祖先与后代之间的派生关系,体现着“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含:值、左子节点指针、右子节点指针。
每个节点都有两个指针,分别指向「左子节点」和「右子节点」,该节点被称为这两个子节点的「父节点」。当给定一个二叉树的节点时,我们将该节点的左子节点及其以下节点形成的树称为该节点的「左子树」,同理可得「右子树」。
如何在C++中创建一个二叉树:
因为二叉树的基本单元是节点,所以要创建一个二叉树本质上是创建多个二叉树节点,然后通过指针把他们连接起来
一、通过定义一个 二叉树节点结构体或类 来创建多个二叉树节点
/* 定义二叉树节点结构体 */
struct TreeNode {
int val; // 节点值
TreeNode *left; // 左子节点指针
TreeNode *right; // 右子节点指针
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} //构造函数,它会在每次创建新对象时执行,可用于为某些成员变量设置初始值
};
// 创建并初始化节点
TreeNode* n1 = new TreeNode(1);
TreeNode* n2 = new TreeNode(2);
TreeNode* n3 = new TreeNode(3);
TreeNode* n4 = new TreeNode(4);
TreeNode* n5 = new TreeNode(5);
二、通过指针把节点连接起来
// 构建指针指向
n1->left = n2;
n1->right = n3;
n2->left = n4;
n2->right = n5;