从头说吧。左节点father右节点mother的二叉树,
你的理解非常正确!
是不是假定一对父母只有一个孩子?如果是,为什么还要问有多少older sisters?
我木有假定一对父母只有一个孩子. 有n个孩子都无所谓.
但是题目要求只是一个person的祖先吧 ? 所以 ....
多说无益
我下面的是 Person class 伪代码
Class Person{
...
List<Person> Sib_list;
BST <Person> Ancestor_tree;
....
};
你这个person 如果兄弟姐妹 就insert 那个 Sib_list; 里面
如果有父母就insert 到那个 Ancestor_tree 里面.
如果 这个 Ancestor_tree 是空的话, 那么这个就是这个人的 曾曾 曾祖父母了. 估计是猿人了! ^_^ .
根据题目的要求, 你列兄弟姐妹 就把 那个Sib_list 打印出来就好了.
如果要列出祖先 就把 Ancestor_tree 列出来就好了. 即 2叉树的遍历 当然你是前序 后序 还是中序遍历 看实际需要了啊.
再说说 估计代码都快敲出来了 ^_^
你的理解非常正确!
是不是假定一对父母只有一个孩子?如果是,为什么还要问有多少older sisters?
我木有假定一对父母只有一个孩子. 有n个孩子都无所谓.
但是题目要求只是一个person的祖先吧 ? 所以 ....
多说无益
我下面的是 Person class 伪代码
Class Person{
...
List<Person> Sib_list;
BST <Person> Ancestor_tree;
....
};
你这个person 如果兄弟姐妹 就insert 那个 Sib_list; 里面
如果有父母就insert 到那个 Ancestor_tree 里面.
如果 这个 Ancestor_tree 是空的话, 那么这个就是这个人的 曾曾 曾祖父母了. 估计是猿人了! ^_^ .
根据题目的要求, 你列兄弟姐妹 就把 那个Sib_list 打印出来就好了.
如果要列出祖先 就把 Ancestor_tree 列出来就好了. 即 2叉树的遍历 当然你是前序 后序 还是中序遍历 看实际需要了啊.
再说说 估计代码都快敲出来了 ^_^