家族树各节点坐标系坐标

1、排序规则

  1. 配偶男左女右
  2. 孩子从大到小不分男女从左往右排序

2、位置规则

  1. 父母与中间的孩子在位置上保持竖直方向一致
  2. 孩子总数除以2得到的数数字就是中间的孩子位置索引(如:3个孩子则第1个为中间孩子,因为3/2=1;4个孩子则第2个为中间孩子。另外,孩子的索引从第0开始)


    familytre.jpg

    如图所示,根节点“王根”有3个孩子,他的中间孩子就是第1个(从0开始)“王芸”;而王芸有2个孩子,那么她的中间孩子根据规则也是第1个“王刚”。

  3. 设定根节点的相对坐标为(0,0),那么根据“位置规则1”,根节点的中间孩子“王芸”,以及王芸的中间孩子“王刚”在一条竖直线上,那么”王芸“的坐标就是(0,-1),”王刚”的坐标就是(0,-2),“王刚“没有孩子,则王根、王芸、王刚形成一条竖直基线占据坐标系Y轴的位置。
  4. 基线形成之后,所有比基线上排行靠前的节点在基线左侧,排行靠后的则在基线右侧。基线使用自上而下确定位置,而两侧位置则使用自下而上确定。
  5. 基线左侧数据采用自下而上、自右而左遍历;基线右侧则采用自下而上、自左而右遍历。举个栗子,扩展一下刚才那个图:


    familytre_sort.jpg

    当遍历到“王刚”节点时确定基线所有节点坐标。然后遍历基线左边所有节点,根据自下而上、自右而左的规则,第一个就是“王刚”的哥哥“王俊”,“王俊”没有孩子节点,所以的他的位置就在“王刚”左边一位,也就是(-1,-2),紧接着遍历“王刚”的弟弟节点,自左而右遍历,其坐标就是(1,-2),这一代就结束了,然后往上遍历,就是”王芸“的哥哥”王明“,”王明“有孩子节点,所以第一个就是王明最右侧的孩子王坤,自右而左然后就是王柳、王恩,3个孩子节点位置确定后,才能确定父亲王明的位置,王明在3个孩子的中间位置。基线右侧的也是一样就不举例说明了。

  6. 所以综合以上规则,最终遍历节点的顺序为王根、王芸、王刚、王俊、王菊、王坤、王柳、王璐、王恩、王明、王凤。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 夏末,在五台山的深山中,有一片少有人踏入的森林。林中的树木遮天蔽日,原本原本炙热的阳关都被树叶挡住,异常的凉爽。林...
    冰月光辉阅读 14,896评论 0 14
  • 这个夜晚 是谁拨打我的电话 熟悉的号码一如散尽的日子 谁又能够轻易地忘记 这个夜晚 七千多个...
    人在旅途_fbe0阅读 2,600评论 2 2
  • 小县城出生的我,幸得青梅一枚竹马两只。因为是工厂家属区,长辈都是同事,我们几个小崽崽也自然而然的成为了朋友。 楼下...
    漠翊阅读 1,540评论 2 0
  • 其实静下心来好好想想,我的生活还真是过得一团糟啊,无药可救的拖延症晚期,懦弱胆小的心,想法很多却从来不去实现,明明...
    我超酷的哇阅读 1,904评论 2 1