我是靠谱客的博主 秀丽板凳,最近开发中收集的这篇文章主要介绍STL 树,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

STL树

用容器构造树

1.构造节点:

struct TreeNode
{
    DataType data;      //  DataType define int
    vector<TreeNode> children;
}

2.创建树:

void CreateTree(vector<TreeNode>::iterator root)
{
    if (root->data < 1) return;
    TreeNode *NewNode;
    for (int i=1;i<=3;i++)
    {
        NewNode = new(TreeNode);
        NewNode->data = root->data - 1;
        root->children.push_back(*NewNode);
        delete NewNode;
    }
    for (vector<TreeNode>::iterator it=root->children.begin(); it!=root->children.end(); it++)
        CreateTree(it);
}

3.构造的树在内存中看不到,要输出:

void dfs(vector<TreeNode>::iterator root)
{
    std::cout<<"  "<<root->data;
    if (root->children.empty()) return;
    for (vector<TreeNode>::iterator it=root->children.begin(); it!=root->children.end(); it++)
        dfs(it);
}

4.添加节点:

void AddNewNode(vector<TreeNode>::iterator root, DataType d)
{
    TreeNode *NewNode;
    NewNode = new(TreeNode);
    NewNode->data = d;
    root->children.push_back(*NewNode);
    delete(NewNode);
}



最后

以上就是秀丽板凳为你收集整理的STL 树的全部内容,希望文章能够帮你解决STL 树所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部