首页 > 试题广场 >

计算树的大小

[编程题]计算树的大小
  • 热度指数:29 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
输入一个树,输入从 1 开始表示根节点,接下来若干行,每行 2 个数字 a, b 表示 ba 的儿子,输入 0 表示输入完毕。
如以下输入样例表示的树为:

请计算树的大小。
树的大小是指树中存在的节点的数量。

输入描述:


输出描述:
示例1

输入

1
1 2
1 3
2 4
2 5
0

输出

5
塞进集合里,然后输出大小
> 不能通过开数组的方式完成,会段错误,猜测应该是数据量太大
#include <iostream>
#include <set>

#define max_number 100000
using std::set;
int main() {
    set<int> t;
    int root;
    scanf("%d", &root);
    t.insert(1);
    int a,b;
    long long count = 0;
    while(true)
    {
        scanf("%d %d", &a, &b);
        // printf("%d %d\n",a,b);
        if (a == 0)
        {
            break;
        }
        t.insert(a);
        t.insert(b);
        
    }

    printf("%ld", t.size());

}


发表于 2026-01-06 21:46:08 回复(0)