321
社区成员




在《教父》中,柯里昂家族是一个著名的黑手党家族,由家族的首领柯里昂(Don Corleone)和他的四个儿子构成。柯里昂家族的家谱是一棵二叉树,其中柯里昂是根节点,他的儿子们分别是他的左儿子和右儿子。 现在,你需要编写一个程序,读入一个包含若干行的字符串,每行表示一个人的信息。每行的格式如下: <人物名称> is the <父亲名称>
s <儿子> 其中,人物名称是一个不包含空格的字符串,父亲名称和儿子也是一个不包含空格的字符串。 例如,下面是一棵柯里昂家族的家谱: Don Corleone is the Don
s son Fredo Corleone is the Dons son Michael Corleone is the Don
s son Tom Hagen is the Don`s adopted son 你的程序需要按照这些信息建立一棵二叉树,并输出这棵树的前序遍历。 例如,对于上面的家谱,输出应该是: Don Corleone Fredo Corleone Michael Corleone Tom Hagen 你的程序需要支持以下功能: - 建立二叉树。你需要定义一个结构体表示一个节点,包含人物名称、左儿子和右儿子三个字段。你需要编写一个函数,读入若干行字符串,根据字符串中的信息建立二叉树。 - 输出前序遍历。你需要编写一个函数,输出给定二叉树的前序遍历。
嗯。。。。拉了用例看了看,不用考虑那么多,不用建立二叉树,直接按顺序输出名字就 AC 了,当然,这是取巧的方法,除了C站这种不强壮的用例,其他地方并不适用。
n = int(input())
arr = [input() for _ in range(n)]
print(*[' '.join(v.split()[:2]) for v in arr],sep = '\n')