Con respecto Para dibujar la estructura, es difícil evitar las colisiones (líneas que se entrecruzan) si tiene más de 2 generaciones visualizadas. Entonces, si tu aplicación te permite mantenerlo en dos, es genial. He escrito una serie de programas que utilizan este tipo de representación, ya sea vertical:
u horizontalmente:
Si necesita más generaciones que se muestran a la vez, Será necesario que presente otras representaciones, y es posible que comiencen a escasear para que pueda mostrar a todos en la misma generación al mismo nivel.
Con respecto a cómo representar las relaciones como estructuras de datos, bueno, es desordenado. La cosa más simple y más clara es que dos individuos que son, respectivamente, la madre y el padre del mismo individuo están "casados". Pero, ¿cómo quieres representar a varios socios, hijastros y demás? Es difícil de responder sin saber más sobre lo que se supone que debe hacer su programa. Tal vez su conjunto de datos no tenga estas complicaciones. Si lo hace, sin embargo, es mejor pensar primero en los casos difíciles: las representaciones simples no se prestan a una extensión fácil para cubrir los casos difíciles.
Dibuja (a mano) algunos de los estuches más difíciles que esperas; eso sugerirá qué tipo de datos necesita registrar y cómo organizarlos. Las elecciones que realice al dibujar (quién ocupa el primer lugar, qué símbolos y texto usar en cada nodo, etc.) informarán las decisiones de su estructura de datos.
Configurar tanto la madre de B como el hijo de A parece redundante, y la redundancia genera errores, elija uno. ¿Cúal? Bueno, hay más información cuando configuras la madre de B (el sexo de A) y sabemos que cualquier persona necesitará exactamente dos padres, en comparación con una cantidad de 0 o más hijos. Así que tendería a ir con solo configuración de la madre de B; siempre puede averiguar los hijos de cualquier individuo al iterar sobre todos para elegir el conjunto cuyo padre es igual al individuo en cuestión. Y, de hecho, el almacenamiento de la Madre & Las relaciones del padre (versus relaciones simples con los padres) pueden reducir la duplicación (suponiendo que esté almacenando el género con las personas).
¿Cómo desea visualizarlo? – Roman