C++树的实现

树是一种常用的数据结构,它由节点组成,每个节点可以有多个子节点。树的结构非常适合用于表示层次关系,比如文件系统、组织结构等。

在C++中,我们可以使用类来实现树的数据结构。下面是一个简单的C++树的实现代码:

#include <iostream>
#include <vector>

using namespace std;

// 定义树的节点
class TreeNode {
public:
    int val;
    vector<TreeNode*> children;
    
    TreeNode(int value) {
        val = value;
    }
};

// 定义树的类
class Tree {
public:
    TreeNode* root;
    
    Tree() {
        root = nullptr;
    }
    
    // 插入节点
    void insert(int value, TreeNode* parent) {
        TreeNode* newNode = new TreeNode(value);
        parent->children.push_back(newNode);
    }
    
    // 遍历树(先序遍历)
    void traverse(TreeNode* node) {
        if (node == nullptr) {
            return;
        }
        
        cout << node->val << " ";
        for (TreeNode* child : node->children) {
            traverse(child);
        }
    }
};

int main() {
    Tree tree;
    
    // 插入节点
    tree.root = new TreeNode(1);
    tree.insert(2, tree.root);
    tree.insert(3, tree.root);
    tree.insert(4, tree.root->children[0]);
    tree.insert(5, tree.root->children[0]);
    tree.insert(6, tree.root->children[1]);
    
    // 遍历树
    tree.traverse(tree.root);
    
    return 0;
}

在上面的代码中,我们首先定义了一个TreeNode类,表示树的节点。每个节点包含一个整数值和一个子节点的向量。然后,我们定义了一个Tree类,表示整个树的结构。树的类中包含一个根节点指针。

我们可以使用insert函数向树中插入节点,该函数接受一个整数值和一个父节点指针作为参数,并在父节点的子节点向量中添加一个新的节点。

最后,我们使用traverse函数遍历树。这里使用了先序遍历的方式,即先访问根节点,然后递归地访问每个子节点。

main函数中,我们创建了一个树对象,并插入了一些节点。然后,我们调用traverse函数遍历树,并输出节点的值。

以上就是一个简单的C++树的实现。通过使用类和递归,我们可以方便地表示和操作树的数据结构


原文地址: http://www.cveoy.top/t/topic/h8dZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录