1. 二叉树的节点定义:每个节点通常包括数据或值,以及指向左子节点和右子节点的指针。这可以用以下形式表示:
struct TreeNode {
int data;
TreeNode* left;
TreeNode* right;
};
2. 二叉树的遍历**:二叉树的遍历有三种主要方法:前序遍历、中序遍历和后序遍历。它们可以用递归或迭代的方式来实现,通常使用以下公式:
- 前序遍历:根 -> 左子树 -> 右子树
- 中序遍历:左子树 -> 根 -> 右子树
- 后序遍历:左子树 -> 右子树 -> 根
3. **二叉树的深度**:二叉树的深度是从根节点到最深叶子节点的最长路径。这可以使用递归来计算,如下所示:
int treeDepth(TreeNode* root) {
if (root == nullptr) {
return 0;
}
int leftDepth = treeDepth(root->left);
int rightDepth = treeDepth(root->right);
return 1 + max(leftDepth, rightDepth);
}
4. 二叉搜索树性质:二叉搜索树 (BST) 的节点满足左子树的值都小于根节点的值,右子树的值都大于根节点的值。这可以用以下不等式表示:
if (node->left != nullptr) {
node->left->data < node->data
}
if (node->right != nullptr) {
node->right->data > node->data
}
这些是与二叉树相关的一些常见公式和概念,用于定义、遍历和分析二叉树的特性。