STL 树

来源:互联网 发布:手机淘宝怎样收藏店铺 编辑:程序博客网 时间:2024/05/17 00:04

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);}



0 0