Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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"));
            }
        }