树的静态写法及其遍历

//树的静态存储结构 
struct node
{
    int data;
    vector child;    
}Node[Max];

//新建一个结点
int index = 0;  // index是结点坐标 
int newNode(int v)
{
    Node[index].data = v;
    Node[index].child.clear();
    return ++index;
}

//树的先根遍历
void PreOrder(int root)
{
    cout << Node[root].data;
    for(int i=0;i<Node[root].child.size();++i)
    {
        PreOrder(Node[root].child[i]);
    }
}

//树的层序遍历
void LayerOrder(int root) // 根据题意,看是否需要加入layer记录层数 
{
    queue q;
    q.push(root);
    while(!q.empty())
    {
        int front = q.front();
        cout << Node[front].data;
        for(int i=0;i<Node[front].child.size();++i)
        {
            q.push(Node[front].child[i]);    
        }    
    }    
}
原文地址:https://www.cnblogs.com/kachunyippp/p/10256796.html