【题目来源】
【题目描述】
给定一棵树中的若干父结点和子结点的关系描述(结点 1 是树根),请问该树中,每个结点有多少个子结点。
比如:读入父子关系如下,先读入父结点,再读入子结点。
根据读入,可以画出树如下。

因此每个结点的子结点的数量分别是:1 2 0 0。
【输入格式】
第 1 行,读入一个整数 n,表示树中结点的数量,树中的结点编号也是 1~n。(n≤100)
接下来 n-1 行,每行有一对父子关系 x y,x 表示父结点的编号,y 表示子结点的编号。
输入数据保证一定合法,能够形成一棵树,且不存在重复的父子关系的读入。
【输出格式】
输出 n 个数,用空格隔开,表示按照编号从小到大的顺序,输出每个结点子结点的数量。
【输入样例】
4
1 2
2 3
2 4
【输出样例】
1 2 0 0
【数据范围】
n≤100
【算法分析】
● 链式前向星、邻接表
链式前向星:
邻接表(无向无权图):
邻接表(有向无权图):
● 链式前向星在算法竞赛中是最常用的图存储方法,尤其在处理大规模稀疏图时,其空间和时间效率优势显著。邻接表虽简单直观,但在竞赛中已逐渐被链式前向星取代。
● 建议:处理无权图时,可以选择邻接表。
【算法代码一:邻接表】
【算法代码二:链式前向星】
【参考文献】