/ / ¿Cuál es la mejor estructura de datos para usar en una relación de descendencia? - Base de datos, estructuras de datos, árbol, padre-hijo.

¿Cuál es la mejor estructura de datos para usar en una relación de descendencia? - Base de datos, estructuras de datos, árbol, padre-hijo.

Debe haber una estructura de datos estándar para contener, por ejemplo, información sobre la cría de perros, cruzamientos genéticos de plantas y relaciones humanas complejas.

Uno podría pensar que sería un árbol fácil.estructura, pero la combinación de dos (o más, para la ingeniería genética) padres por descendencia, múltiples descendientes diferentes por conjunto parental, múltiples movimientos de los padres (espárragos se aparean con muchos otros caballos), adopción, etc. hace de esta una estructura muy fragmentada.

Aunque espero que alguien haya abordado esto antes. ¿Algún recurso que debería tener en cuenta?

Respuestas

2 para la respuesta № 1

Creo que lo que tienes es solo una base de datos relacional simple, donde la relación principal es "child_of", "direct_descendant", etc.

Por supuesto, la estructura de datos particular aquí es acíclica, y es posible que desee hacer consultas transitivas (descendientes de descendientes de ...), que generalmente no son compatibles con los motores SQL estándar.

Entonces, si quieres hacerlo en memoria, podrías usar un gráfico acíclico dirigido (DAG).


1 para la respuesta № 2

Huele como un TROZO DE CUERO. Si lo dirigido y el acíclico son demasiado limitantes, es posible que desee ver el estructuras de datos de la teoría de grafos.

Usando gráficas para problemas abstractos, los vértices representan entidades y los bordes representan la relación.