public void buscarNodo(int _dato, Object tipo)
        {
            Nodo actual   = null;
            int  contador = 0;

            if (tipo.GetType() == typeof(Cola))
            {
                Cola nueva = (Cola)tipo;
                actual = nueva.getNodoPrincipio();
            }

            if (tipo.GetType() == typeof(ListaEnlazada))
            {
                actual = primero;
            }

            //Compruebo que mi nodo no este vacio para poder continuar
            if (actual == null)
            {
                return;
            }

            //Si lista solo contiente un elemeto
            if (actual.getNodoSiguiente() == null && actual.getDato() == _dato)
            {
                Console.Write($"Se encontro dato en pos: {contador}");
                return;
            }

            //Busco en mis elementos de la lista
            while (actual.getNodoSiguiente() != null)
            {
                if (actual.getDato() == _dato)
                {
                    Console.WriteLine($"Se encontro dato en pos: {contador}");
                }

                actual = actual.getNodoSiguiente();
                contador++;

                //Busco en mi ultimo elemento de la lista (Que apunta a Null)
                if (actual.getNodoSiguiente() == null)
                {
                    if (actual.getDato() == _dato)
                    {
                        Console.WriteLine($"Se encontro dato en pos: {contador}");
                    }
                }
            }
        }
        public void imprimir(Object tipo)
        {
            String tipoEstructura = "";
            Nodo   actual         = null;

            if (tipo.GetType() == typeof(Cola))
            {
                Cola nueva = (Cola)tipo;
                actual         = nueva.getNodoPrincipio();
                tipoEstructura = "Cola: ";
            }

            if (tipo.GetType() == typeof(ListaEnlazada))
            {
                actual         = primero;
                tipoEstructura = "Lista: ";
            }

            if (actual == null)
            {
                Console.WriteLine($"La lista esta vacia...");
            }
            else
            {
                Console.Write(tipoEstructura);
                if (actual.getNodoSiguiente() == null)
                {
                    Console.WriteLine($"|{actual.getDato()}|");
                    return;
                }
                while (actual.getNodoSiguiente() != null)
                {
                    Console.Write($" |{actual.getDato()}| ->");
                    actual = actual.getNodoSiguiente();
                    if (actual.getNodoSiguiente() == null)
                    {
                        Console.Write($" |{actual.getDato()}|");
                    }
                }
            }
        }
Exemplo n.º 3
0
        public static void mostrarMenuCola()
        {
            int  val;
            int  opcion;
            Cola miCola = new Cola();

            while (true)
            {
                Console.Clear();
                Console.WriteLine("## Menu cola ##");
                Console.WriteLine("1) Establecer tamaño");
                Console.WriteLine("2) Encolar");
                Console.WriteLine("3) Desencolar");
                Console.WriteLine("4) Imprimir");
                Console.WriteLine("5) Buscar");
                Console.WriteLine("6) Volver al menu principal");

                opcion = ingresarValor();

                switch (opcion)
                {
                case 1:
                    Console.WriteLine("Asigna el tamaño de la Cola");
                    val = ingresarValor();
                    miCola.setLimiteDeDatos(val);
                    Console.ReadLine();
                    break;

                case 2:
                    Console.WriteLine("Ingresa el ENTERO a encolar, de no ser ENTERO se encolara un '0'");
                    val = ingresarValor();
                    miCola.encolar(val);
                    break;

                case 3:
                    Console.Write("Se ha desencolado la estructura en una poscion");
                    miCola.desencolar();
                    Console.ReadLine();
                    break;

                case 4:
                    Console.Write("Imprimir cola... \n");
                    miCola.imprimir(miCola);
                    Console.ReadLine();
                    break;

                case 5:
                    Console.WriteLine("Ingresa el Valor que quieres buscar (retorna posicion en cola)");
                    val = ingresarValor();
                    miCola.buscarNodo(val, miCola);
                    Console.ReadLine();
                    break;

                case 6:
                    Console.WriteLine("La Cola se ha eliminado, pulsa cualquier tecla para continuar...");
                    Console.ReadKey();
                    return;

                default:
                    Console.WriteLine("Porfavor ingrese una opcion valida");
                    Console.ReadKey();
                    break;
                }
            }
        }