某王國其王位繼承的規則如下:
(1) 此國家重男輕女,只有皇室成員中的男性才有繼承權。
(2) 若國王退位或去世,此時王位由國王在世的兒子繼承,年紀較大的優先繼承。
(3) 若國王退位或去世時,國王沒有在世的兒子,此時王位由國王的弟弟繼承,年紀較大的優先繼承。
(4) 若國王退位或去世時,沒有在世的兒子與弟弟,此時王位由國王在世的叔叔繼承,年紀較大的優先繼承。(所謂叔叔是指父親的弟弟)
(5) 若國王退位或去世時,沒有在世的兒子、弟弟、與叔叔,此時王位由國王在世的叔公繼承,年紀較大的優先繼承。(所謂叔公是指祖父的弟弟)
我們以下面這個家族樹(family tree)為例來說明上述規則(假設不在樹上的人皆已去世,不需要列入考慮)。如果目前的國王是 Charles,根據上述規則,當 Charles 退位或去世時,可能繼位者的繼承優先順位依序為 William、Edward、Adam、Benjamin、Peter、Chris與Bill。其中 Adam 排在 William 與 Edward 之後表示當現任國王 Charles 退位或去世時,如果 William 與 Edward 也都已經去世,Adam 便可以繼承王位。同樣考慮下面這個家族樹,如果目前的國王是 Peter,當 Peter 退位或去世時,繼位者的優先順位則為 Allen、Chris與Bill。
請撰寫一個程式,依據輸入的一棵家族樹與現任國王名稱,將此家族樹中未來可能繼位者依繼承優先順位列出。所輸入的家族樹是一棵以現任國王或其某一位祖先為樹根的家族樹,樹中的成員都是男性,而且必定包括現任國王。