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()}|"); } } } }
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; } } }