Beispiel #1
0
        public HttpStatusCode SetOrder([FromForm] IFormFile file)
        {
            if (file == null)
            {
                return(HttpStatusCode.BadRequest);
            }
            var Memory   = new MemoryStream();
            var delegado = new DiskBTree <Movie> .ToTObj(ConvertToMovie);

            file.CopyToAsync(Memory);
            string contenido = Encoding.ASCII.GetString(Memory.ToArray());
            string path      = _env.ContentRootPath;

            try
            {
                Order result = JsonSerializer.Deserialize <Order>(contenido);
                if (result.order < 3)
                {
                    Data.tree = new DiskBTree <Movie>(137, 3, path, delegado);
                    return(HttpStatusCode.Created);
                }
                else
                {
                    Data.tree = new DiskBTree <Movie>(137, result.order, path, delegado);
                    return(HttpStatusCode.Created);
                }
            }
            catch (Exception)
            {
                return(HttpStatusCode.InternalServerError);
            }
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            BTreeInt        template  = new BTreeInt(9);
            BTreeInt        template2 = new BTreeInt(10);
            BTreeInt        template3 = new BTreeInt(12);
            List <BTreeInt> temp      = new List <BTreeInt>();
            List <BTreeInt> auxiliar  = new List <BTreeInt>();

            temp.Add(template);
            temp.Add(template2);
            temp.Add(template3);
            int[] cosas    = { 64, 31, 24, 77, 20, 99, 34, 58, 51, 4, 48, 80, 22, 15, 72, 7, 75, 53, 33, 18, 16, 78, 44, 62, 68, 84, 14, 92, 93, 17 };
            var   delegado = new DiskBTree <BTreeInt> .ToTObj(Convert);

            DiskBTree <BTreeInt> arbolito = new DiskBTree <BTreeInt>(4, 5, @"C:\Users\brazi\Desktop\Tree.txt", delegado);



            foreach (var cosa in cosas)
            {
                BTreeInt inter = new BTreeInt(cosa);
                arbolito.Insert(inter);
            }
            //Caso de eliminación: hoja en underflow, unión de padre y hermanos, padre en underflow
            //arbolito.Delete(16);
            //arbolito.Delete(20);
            //arbolito.Delete(4);
            //arbolito.Delete(22);
            //arbolito.Delete(24);
            //arbolito.Delete(18);
            //arbolito.Delete(14);

            arbolito.Delete(99);
            arbolito.Delete(64);
            arbolito.Delete(75);
            arbolito.Delete(14);
            arbolito.Delete(31);
            arbolito.Delete(48);
            arbolito.Delete(20);
            arbolito.Delete(84);
            arbolito.Delete(62);
            arbolito.Delete(15);
            arbolito.Delete(18);
            arbolito.Delete(17);
            arbolito.Delete(16);



            List <BTreeInt> recorrido = new List <BTreeInt>();

            Console.WriteLine("1. InOrder");
            Console.WriteLine("2. PreOrder");
            Console.WriteLine("3. PostOrder");
            Console.WriteLine("Ingrese recorrido deseado: ");
            int respuesta = int.Parse(Console.ReadLine());

            switch (respuesta)
            {
            case 1:
                arbolito.InOrder(recorrido);
                foreach (var item in recorrido)
                {
                    Console.WriteLine(item.Key);
                }
                break;

            case 2:
                arbolito.PreOrder(recorrido);
                foreach (var item in recorrido)
                {
                    Console.WriteLine(item.Key);
                }
                break;

            case 3:
                arbolito.PostOrder(recorrido);
                foreach (var item in recorrido)
                {
                    Console.WriteLine(item.Key);
                }
                break;

            default:
                break;
            }

            Console.ReadKey();
        }