zoukankan      html  css  js  c++  java
  • PAT-A1004. Counting Leaves (30)

      根据家谱树从根结点开始输出每一层的叶子结点数量。使用BFS来解决。因为不会重复访问结点,所以不需要vis数组来标记是否访问过该结点。

     1 //#include "stdafx.h"
     2 #include <iostream>
     3 #include <vector>
     4 #include <queue>
     5 
     6 using namespace std;
     7 
     8 vector<int> node[101]; // Storing children's dynamic arrays
     9 queue<int> que; // que for bfs
    10 bool first = true; // first output flag
    11 
    12 void bfs() { // traverse by layer
    13     int queSize = que.size(), cur, nodeSize, count = 0, i;
    14     while (queSize--) { // traverse all nodes at the current level
    15         cur = que.front();
    16         que.pop();
    17 
    18         nodeSize = node[cur].size();
    19         if (nodeSize == 0) { // if it is a leaf node
    20             count++;
    21         } else {
    22             for (i = 0; i < nodeSize; i++) { // if not, add child node
    23                 que.push(node[cur][i]);
    24             }
    25         }
    26     }
    27 
    28     // output
    29     if (first) {
    30         first = false;
    31     } else {
    32         printf(" ");
    33     }
    34     printf("%d", count);
    35 
    36     if (que.size() > 0) { // if que has elements, traverse
    37         bfs();
    38     }
    39 }
    40 
    41 int main() {
    42     int n, m;
    43     scanf("%d%d", &n, &m);
    44 
    45     int i, id, k, child, j;
    46     for (i = 0; i < m; i++) {
    47         scanf("%d%d", &id, &k);
    48 
    49         for (j = 1; j <= k; j++) {
    50             scanf("%d", &child);
    51             node[id].push_back(child);
    52         }
    53     }
    54 
    55     que.push(1); // add root node
    56     bfs();
    57     printf("
    ");
    58 
    59     system("pause");
    60     return 0;
    61 }
    View Code

  • 相关阅读:
    Tushare模块
    关于上下文
    Flask的session使用
    Flask的请求处理机制
    Tomcat启动报错:SERVER: Error ListenerStart 排查过程记录
    Extjs中设置只读的样式问题
    Extjs中获取getEl获取undefined的问题
    【转载】使用SoapUI 测试Web Service
    PLSQL快捷键设置
    PLSQL配置数据库的方式
  • 原文地址:https://www.cnblogs.com/WJQ2017/p/7586596.html
Copyright © 2011-2022 走看看