zoukankan      html  css  js  c++  java
  • 有根树的表达

    2019-08-02

    11:17:53

    题目链接

    https://vjudge.net/problem/Aizu-ALDS1_7_A

    #include<bits/stdc++.h>
    using namespace std;
    #define MAX 100005
    #define NIL -1
    struct Node{
        int p; //节点U的父节点 
        int l; //最左侧的子节点 
        int r; //右侧紧邻的兄弟节点 
    }T[MAX];
    int n;
    int D[MAX];
    
    void print(int u)
    {
        cout << "node " << u <<": ";
        cout << "parent = " << T[u].p <<", ";
        cout << "depth = " << D[u] << ", ";
        
        if(T[u].p == NIL) cout << "root, ";
        else if(T[u].l == NIL) cout << "leaf, ";
        else cout << "internal node, ";
        
        cout << "[";
        for(int i = 0, c = T[u].l; c != NIL; i++, c = T[c].r)
        {
            if(i) cout << ", ";
            cout << c;
        }
        cout << "]" << endl;
    }
    int rec(int u,int p) // 根节点,p是深度 
    {
        D[u] = p; //这个是为了记录每一个节点的深度 
        if(T[u].r != NIL) rec(T[u].r,p);
        if(T[u].l != NIL) rec(T[u].l, p+1);
    } 
    int main()
    
    {
        cin >> n;
        int id, k, c, l, r;
        for(int i = 0; i < n; i++) //初始化 
        {
            T[i].p = T[i].l = T[i].r = NIL; 
        }
        for(int i = 0; i < n; i++)
        {
            cin >> id >> k ; //id节点的编号,k节点的度数    
            for(int j = 0; j < k; j++)
            {
                cin >> c;
                if(j == 0)
                {
                    T[id].l = c; // 编号为id的最左侧子节点 
                }
                else
                {
                    T[l].r = c;
                }
                l = c;
                T[c].p = id; //存每个节点的父节点 
            }
        }
        
        for(int i = 0; i < n; i++)
        {
            if(T[i].p == NIL) r = i;
        }
        
        rec(r, 0);
        for(int i = 0; i < n; i++)
        {
            print(i); //print是一个函数 
        }
        return 0;    
    } 
  • 相关阅读:
    工作总结
    JSON数据使用
    DataTable知识
    树形结构菜单
    区域树前后台
    跨域总结
    工作一年感想
    项目整体架构分析
    springboot 和 mongdb连接问题 Exception in thread "main" com.mongodb.MongoSecurityException:
    go函数、方法、接口笔记
  • 原文地址:https://www.cnblogs.com/Artimis-fightting/p/11287478.html
Copyright © 2011-2022 走看看