public static bool setParentAndKid(FamilyGraphNode parent, FamilyGraphNode kid) { if (parent.Age >= kid.Age) { if (parent.Gender == "male") { parent.setToBeFatherOf(kid); return(true); } else if (parent.Gender == "female") { parent.setToBeMotherOf(kid); return(true); } } else if (parent.Age < kid.Age) { if (kid.Gender == "male") { kid.setToBeFatherOf(parent); return(true); } else if (kid.Gender == "female") { kid.setToBeMotherOf(parent); return(true); } } else { Console.WriteLine("Person::setParentAndKid()输入有误"); return(false); } return(false); }
public static bool setBrotherAndSister(FamilyGraphNode elder, FamilyGraphNode younger) { if (elder.Age >= younger.Age) { if (elder.Gender == "male") { elder.setToBeElderBrotherOf(younger); } else if (elder.Gender == "female") { elder.setToBeElderSisterOf(younger); } return(true); } else if (elder.Age < younger.Age) { if (elder.Gender == "male") { elder.setToBeLittleBrotherOf(younger); } else if (elder.Gender == "female") { elder.setToBeLittleSisterOf(younger); } return(true); } //else if (elder.birthday != null && younger.birthday != null) //{ // if ((elder.birthday).CompareTo(younger.birthday) <= 0) // { // if (elder.Gender == "male") // { // elder.setToBeElderBrotherOf(younger); // } // else if (elder.Gender == "female") // { // elder.setToBeElderSisterOf(younger); // } // return true; // } // else if ((elder.birthday).CompareTo(younger.birthday) > 0) // { // if (elder.Gender == "male") // { // elder.setToBeLittleBrotherOf(younger); // } // else if (elder.Gender == "female") // { // elder.setToBeLittleSisterOf(younger); // } // return true; // } //} else { Console.WriteLine("Person::setBrotherAndSister()输入有误"); return(false); } }
public static bool isBrotherAndSister(FamilyGraphNode elder, FamilyGraphNode younger) { if (elder.Age >= younger.Age) { if (elder._littleBrother == younger || elder._littleSister == younger) { return(true); } else { return(false); } } else if (elder.Age < younger.Age) { if (elder._elderBrother == younger || elder._elderSister == younger) { return(true); } else { return(false); } } //else if (elder.birthday != null && younger.birthday != null) //{ // if ((elder.birthday).CompareTo(younger.birthday) <= 0) // { // if (elder._littleBrother == younger || elder._littleSister == younger) // { // return true; // } // else // { // return false; // } // } // else if ((elder.birthday).CompareTo(younger.birthday) > 0) // { // if (elder._elderBrother == younger || elder._elderSister == younger) // { // return true; // } // else // { // return false; // } // } //} else { Console.WriteLine("Person::isBrotherAndSister()输入有误"); return(false); } }
public static bool isParentAndKid(FamilyGraphNode parent, FamilyGraphNode kid) { if (parent.Age >= kid.Age) { if (parent._son == kid || parent._daughter == kid) { return(true); } else { return(false); } } else if (parent.Age < kid.Age) { if (parent._father == kid || parent._mother == kid) { return(true); } else { return(false); } } //else if (parent.birthday != null && kid.birthday != null) //{ // if ((parent.birthday).CompareTo(kid.birthday) <= 0) // { // if (parent._son == kid || parent._daughter == kid) // { // return true; // } // else // { // return false; // } // } // else if ((parent.birthday).CompareTo(kid.birthday) > 0) // { // if (parent._father == kid || parent._mother == kid) // { // return true; // } // else // { // return false; // } // } //} else { Console.WriteLine("Person::isParentAndKid()输入有误"); return(false); } }
private void setToBeLittleSisterOf(FamilyGraphNode p) { p._littleSister = this; if (p.Gender == "male") { this._elderBrother = p; } else if (p.Gender == "female") { this._elderSister = p; } }
private void setToBeDaughterOf(FamilyGraphNode p) { p._daughter = this; if (p.Gender == "male") { this._father = p; } else if (p.Gender == "female") { this._mother = p; } }
private void setToBeSonOf(FamilyGraphNode p) { p._son = this; if (p.Gender == "male") { this._father = p; } else if (p.Gender == "female") { this._mother = p; } }
public FamilyGraphNode _wife; //encode:42 #endregion #region //关系编码 /* * 基础关系:最短编码 * * 自己 00 * 父亲 01 * 母亲 02 * 儿子 11 * female儿 12 * 大哥 21 * 大姐 22 * 小弟 31 * 小妹 32 * 丈夫 41 * 妻子 42 * * 扩展关系:最短编码 * * 爷爷 父亲的父亲 0101 * 奶奶 父亲的母亲 0102 * 自己(male)、大哥、小弟 父亲的儿子 0111 * 自己(female)、大姐、小妹 父亲的female儿 0112 * 伯父 父亲的大哥 0121 * 姑妈 父亲的大姐 0122 * 叔叔 父亲的小弟 0131 * 小姑 父亲的小妹 0132 * 母亲 父亲的妻子 0142 * * 外公 母亲的父亲 0201 * 外婆 母亲的母亲 0202 * 自己(male)、大哥、小弟 母亲的儿子 0211 * 自己(female)、大姐、小妹 母亲的female儿 0212 * 大舅 母亲的大哥 0221 * 小舅 母亲的大姐 0222 * 大姨 母亲的小弟 0231 * 小姨 母亲的小妹 0232 * 父亲 母亲的丈夫 0241 * * 自己(male)、老公 儿子的父亲 1101 * 自己(female)、老婆 儿子的母亲 1102 * 孙子 儿子的儿子 1111 * 孙female 儿子的female儿 1112 * 儿子 儿子的大哥 1121 * female儿 儿子的大姐 1122 * 儿子 儿子的小弟 1131 * female儿 儿子的小妹 1132 * 儿媳妇 儿子的妻子 1142 * * 自己(male)、老公 female儿的父亲 1201 * 自己(female)、老婆 female儿的母亲 1202 * 孙子 female儿的儿子 1211 * 孙female female儿的female儿 1212 * 儿子 female儿的大哥 1221 * female儿 female儿的大姐 1222 * 儿子 female儿的小弟 1231 * female儿 female儿的小妹 1232 * female婿 female儿的丈夫 1241 * * 父亲 大哥的父亲 2101 * 母亲 大哥的母亲 2102 * 侄子 大哥的儿子 2111 * 侄female 大哥的female儿 2112 * 大哥 大哥的大哥 2121 * 大姐 大哥的大姐 2122 * 自己(male)、大哥、小弟 大哥的小弟 2131 * 自己(female)、大姐、小妹 大哥的小妹 2132 * 嫂子 大哥的妻子 2142 * * 父亲 大姐的父亲 2201 * 母亲 大姐的母亲 2202 * 外甥 大姐的儿子 2211 * 外甥female 大姐的female儿 2212 * 大哥 大姐的大哥 2221 * 大姐 大姐的大姐 2222 * 自己(male)、大哥、小弟 大姐的小弟 2231 * 自己(female)、大姐、小妹 大姐的小妹 2232 * 姐夫 大姐的丈夫 2241 * * 父亲 小弟的父亲 3101 * 母亲 小弟的母亲 3102 * 侄子 小弟的儿子 3111 * 侄female 小弟的female儿 3112 * 自己(male)、大哥、小弟 小弟的大哥 3121 * 自己(female)、大姐、小妹 小弟的大姐 3122 * 小弟 小弟的小弟 3131 * 小妹 小弟的小妹 3132 * 弟妹 小弟的妻子 3142 * * 父亲 小妹的父亲 3201 * 母亲 小妹的母亲 3202 * 外甥 小妹的儿子 3211 * 外甥female 小妹的female儿 3212 * 自己(male)、大哥、小弟 小妹的大哥 3221 * 自己(female)、大姐、小妹 小妹的大姐 3222 * 小弟 小妹的小弟 3231 * 小妹 小妹的小妹 3232 * 妹夫 小妹的丈夫 3241 * * 公公 丈夫的父亲 4101 * 婆婆 丈夫的母亲 4102 * 儿子 丈夫的儿子 4111 * 小姑子 丈夫的female儿 4112 * 大伯子 丈夫的大哥 4121 * 大姑子 丈夫的大姐 4122 * 小叔子 丈夫的小弟 4131 * 小姑子 丈夫的小妹 4132 * 自己(female) 丈夫的妻子 4142 * * 岳父 妻子的父亲 4201 * 岳母 妻子的母亲 4202 * 儿子 妻子的儿子 4211 * female儿 妻子的female儿 4212 * 大舅子 妻子的大哥 4221 * 大姨子 妻子的大姐 4222 * 小舅子 妻子的小弟 4231 * 小姨子 妻子的小妹 4232 * 自己(male) 妻子的丈夫 4241 */ #endregion #region//构造方法 public FamilyGraphNode() { _me = this; _father = null; _mother = null; _son = null; _daughter = null; _elderBrother = null; _elderSister = null; _littleBrother = null; _littleSister = null; }
public FamilyGraphNode(string name) { this.Name = name; _me = this; _father = null; _mother = null; _son = null; _daughter = null; _elderBrother = null; _elderSister = null; _littleBrother = null; _littleSister = null; }
public static bool setHusbandAndWife(FamilyGraphNode husband, FamilyGraphNode wife) { if (husband.Gender == "male" && wife.Gender == "female") { husband.setToBeHusbandOf(wife); return(true); } else if (husband.Gender == "female" && wife.Gender == "male") { husband.setToBeWifeOf(wife); return(true); } else { Console.WriteLine("Person::setHusbandAndWife()输入有误"); return(false); } }
public static bool unsetHusbandAndWife(FamilyGraphNode husband, FamilyGraphNode wife) { if (husband.Gender == "male" && wife.Gender == "female") { husband._wife = null; wife._husband = null; return(true); } else if (husband.Gender == "female" && wife.Gender == "male") { husband._husband = null; wife._wife = null; return(true); } else { Console.WriteLine("Person::unsetHusbandAndWife()输入有误"); return(false); } }
public static bool unsetParentAndKid(FamilyGraphNode parent, FamilyGraphNode kid) { if (parent.Age >= kid.Age) { if (parent.Gender == "male") { if (kid.Gender == "male") { parent._son = null; kid._father = null; } else if (kid.Gender == "female") { parent._daughter = null; kid._father = null; } return(true); } else if (parent.Gender == "female") { if (kid.Gender == "male") { parent._son = null; kid._mother = null; } else if (kid.Gender == "female") { parent._daughter = null; kid._mother = null; } return(true); } } else if (parent.Age < kid.Age) { if (parent.Gender == "male") { if (kid.Gender == "male") { parent._father = null; kid._son = null; } else if (kid.Gender == "female") { parent._mother = null; kid._son = null; } return(true); } else if (parent.Gender == "female") { if (kid.Gender == "male") { parent._father = null; kid._daughter = null; } else if (kid.Gender == "female") { parent._mother = null; kid._daughter = null; } return(true); } } else { Console.WriteLine("Person::unsetParentAndKid()输入有误"); return(false); } return(false); }
private void setToBeWifeOf(FamilyGraphNode p) { this._husband = p; p._wife = this; }