- E1: Más de 2 hijos
- E2: Tuplas Duplicadas
- E3: Ciclo presente
- E4: Múltiples raíces
- E5: Múltiples padres
La entrada es una expresión que contiene relaciones padre-hijo. la salida es Códigos de error o éxito.
Ejemplos de casos de prueba
- Entrada: (AB)(AC)(BG)(CH)(EF)(BD)(CE) Salida: Éxito
- Entrada: (AB)(AC)(AD) Salida: E1
- Entrada: (AB)(AB) Salida: E2
- Entrada: (AB)(BC)(CA) Salida: E3
- Entrada: (AB)(CD) Salida: E4
- Entrada: (AB)(BC)(AC) Salida: E5
Solución
El código está escrito en node.js javascript. Las pruebas están usando moka. El truco principal en esta pregunta es que la estructura de datos necesaria para contener dichos datos no es un árbol binario sino un gráfico. O un gráfico con dos conjuntos de aristas hijos y padres.
Usé este DS en javascript para resolver:
function Node(data) { this.data = data; this.children = []; this.parents = []; }
- add(n) donde n es el id de la instancia
- remove(n) donde n es id de instancia
- getRandom() que devuelve una instancia aleatoria.
- Explica detalladamente tus proyectos
- Métricas clave sobre su proyecto, es decir, cuánta carga manejó, etc.
- Si está almacenando los mismos datos en bases de datos separadas, ¿cómo los mantendrá sincronizados?
- Si vas a escribir tu proyecto desde cero, ¿qué cambiarías?
Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA