介绍
树是一种数据结构,它是由n(n≥0)个有限节点组成一个具有层次关系的集合。每个节点有零个或多个子节点,没有父节点的节点称为根节点,每一个非根节点有且只有一个父节点,除了根节点外,每个子节点可以分为多个不相交的子树。
实现举例
cpp
#include <iostream>
using namespace std;
class TreeNode {
public:
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int v) : val(v), left(nullptr), right(nullptr) {}
};
class Tree {
public:
TreeNode* root;
Tree(TreeNode* r) : root(r) {}
};
int main() {
// 创建一个树的根节点
TreeNode* root = new TreeNode(1);
// 创建树的左子节点和右子节点
TreeNode* leftChild = new TreeNode(2);
TreeNode* rightChild = new TreeNode(3);
// 将左子节点和右子节点连接到根节点上
root->left = leftChild;
root->right = rightChild;
// 创建一棵树,并将根节点传入
Tree tree = new Tree(root);
// 输出树中节点的值
cout << "根节点的值为:" << tree.root->val << endl;
cout << "左子节点的值为:" << tree.root->left->val << endl;
cout << "右子节点的值为:" << tree.root->right->val << endl;
return 0;
}
示例代码说明
代码定义了一个TreeNode
类来表示树中的节点,每个节点包含一个整数值val
,以及左右子节点的指针left
和right
。另外,还定义了一个Tree
类来表示整个树,它包含一个指向根节点的指针root
。在主函数中,我们创建了一个树的根节点,以及左子节点和右子节点,并将它们连接起来。然后,我们创建了一棵树,并将根节点传入。最后,我们输出了树中节点的值。
总结
树状结构在计算机科学中有着广泛的应用,包括表示目录结构、文件系统、社交网络关系等。