求C语言高手 急急急!!!!!!!!!!!
一个家族可以用一棵树来表示,如:其在计算机内的存储可以采用顺序存储结构,也可以采用链式存储结构,可以采用孩子兄弟法存储,也可以采用双亲表示法存储,请选择一种存储结构,对于...
一个家族可以用一棵树来表示,如:
其在计算机内的存储可以采用顺序存储结构,也可以采用链式存储结构,可以采用孩子兄弟法存储,也可以采用双亲表示法存储,请选择一种存储结构,对于任意输入的该家族中的一个人名,请给出该人员是这个家族的第几代人,他的双亲是谁,他的亲兄弟姐妹分别是哪些人,他的堂兄弟姐妹双是哪些,他的子女有哪些? 还有两天就要了。。。。。。 展开
其在计算机内的存储可以采用顺序存储结构,也可以采用链式存储结构,可以采用孩子兄弟法存储,也可以采用双亲表示法存储,请选择一种存储结构,对于任意输入的该家族中的一个人名,请给出该人员是这个家族的第几代人,他的双亲是谁,他的亲兄弟姐妹分别是哪些人,他的堂兄弟姐妹双是哪些,他的子女有哪些? 还有两天就要了。。。。。。 展开
展开全部
节点设计最重要了, 建议节点除了存储本人的信息之外, 一般存储双亲指针和第一个孩子的指针,和下一个兄弟的指针. 这样就可以很方便的实现你的功能.
1.第几代人
可以递归用双亲指针直到某个节点的双亲指针为空,记录递归次数,即是本人是第几代人.
2.双亲
本身存储了双亲指针,不用多说.
3. 兄弟姐妹分别是哪些人
找到双亲后,双亲的第一个孩子是当前节点最大的"大哥",按照"大哥"的下一个兄弟指针,依次可以遍历到所有的兄弟.
4. 堂兄弟姐妹
通过双亲的双亲找到爷爷,遍历爷爷的孩子且非当前节点双亲的所有孩子,即是堂兄弟姐妹
class Person
{
public:
string strName
public:
Person * pParent;
Person * pFirstChild;
Person * pNextBrother;
}
1.第几代人
可以递归用双亲指针直到某个节点的双亲指针为空,记录递归次数,即是本人是第几代人.
2.双亲
本身存储了双亲指针,不用多说.
3. 兄弟姐妹分别是哪些人
找到双亲后,双亲的第一个孩子是当前节点最大的"大哥",按照"大哥"的下一个兄弟指针,依次可以遍历到所有的兄弟.
4. 堂兄弟姐妹
通过双亲的双亲找到爷爷,遍历爷爷的孩子且非当前节点双亲的所有孩子,即是堂兄弟姐妹
class Person
{
public:
string strName
public:
Person * pParent;
Person * pFirstChild;
Person * pNextBrother;
}
追问
基本点都不会做啊,能不能具体点呢。。。。
追答
程序做好了,但是太长,怎么给你?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询