public IHttpActionResult Crear([FromBody] string[] nodosArbol) { // Instancia clase de arbol binario ArbolBinario arbolBinario = new ArbolBinario(); // Itera e inserta cada nodo de arbol for (int i = 0; i < nodosArbol.Length; i++) { arbolBinario.InsertarNodo(int.Parse(nodosArbol[i])); } // Almacena arbol en base de datos (simulación), retorna identificador // único para posterior consulta string id = Almacenamiento.GuardarArbol(arbolBinario); // Retorna ID de arbol creado return(Ok(id)); }
public IHttpActionResult ObtenerAncestroComun([FromBody] AncestroComun ac) { // Obtiene arbol basado en ID generado previamente por el servicio "<domain>/API/ArbolBinario/Crear" ArbolBinario arbolBinario = Almacenamiento.ObtenerArbol(ac.ArbolID); try { // Calcula el ancestro mas cercano basado en el "ID" del arbol creado // previamente con el servicio "<domain>/API/ArbolBinario/Crear" int commonAncestor = AncestroArbol.CalcAncestroComun(arbolBinario, ac.ValorNodo1, ac.ValorNodo2); // Retorna ID de arbol creado return(Ok(commonAncestor)); } catch (Exception e) { return(BadRequest("No fue posible cacular el ancestro común mas cercano")); } }