public string conviertePostfija(string expresion) { StringBuilder salida = new StringBuilder(); PilaLista lista = new PilaLista(); string token = string.Empty; Tipo tipo = Tipo.invalido; for (int i = 0; i < expresion.Length; i++) { token = expresion[i].ToString(); tipo = GetTipo(token); if (tipo == Tipo.operando) { salida.Append(token); } else { ApilarOperador(salida, lista, token); } } VaciarOperandos(salida, lista); return(salida.ToString()); }
static void EjemploPilaLista() { int x; PilaListaSimple listaEnla; listaEnla = new PilaListaSimple(); PilaLista pl = new PilaLista(); listaEnla.Agregar(1); listaEnla.Agregar(5); listaEnla.Agregar(16); listaEnla.Agregar(217); listaEnla.Agregar(41); listaEnla.Agregar(19); //var xx = listaEnla.eliminar(); //var xx = pl.quitar(); //while (!listaEnla.ListaVacia()) //{ // x = (int)(listaEnla.eliminar()); // Console.WriteLine($"Elemento:{x}"); //} Console.WriteLine("ORDEN INVERSO: "); listaEnla.inverso(); int pausa; pausa = 0; }
static void NumbersList() { PilaLista PilaL; int x; int CLAVE = -1; Console.WriteLine("Ingrese numeros, y para terminar -1"); try { PilaL = new PilaLista(); do { x = Convert.ToInt32(Console.ReadLine()); if (x != -1) { PilaL.insertar(x); } } while (x != CLAVE); Console.WriteLine("ESTOS SON LOS ELEMENTOS DE LA PILA:"); while (!PilaL.pilaVacia()) { x = (int)(PilaL.quitar()); Console.WriteLine($"elemento:{x}"); } } catch (Exception error) { Console.WriteLine("Error= " + error.Message); } }
static void EnClase() { bool capicua; string numero; PilaLista pila = new PilaLista(); Cola_Circular cola = new Cola_Circular(); try { capicua = false; while (!capicua) { do { Console.WriteLine("INGRESE UN NUMERO"); numero = Console.ReadLine(); } while (!valido(numero)); //pone en la cola y en la pila cada digito for (int i = 0; i < numero.Length; i++) { Char c; c = numero[i]; cola.insertar(c); pila.insertar(c); } int pausa = 0; //se retira de la cola do { Char d; d = (char)cola.quitar(); //capicua = d.Equals(cola.quitar()); capicua = d.Equals(pila.quitar()); //compara igualdad } while (capicua && !cola.Cola_Vacia() /*&& !pila.PilaVacia()*/); if (capicua) { Console.WriteLine($"Numero {numero} es capicua0"); } else { Console.WriteLine("el numero no es Capicua"); } //vaciar estrucutras cola.BorrarCola(); //pila.limpiar(); } } catch (Exception e) { Console.WriteLine("error" + e); } }
private void ApilarOperador(StringBuilder salida, PilaLista operadores, string token) { salida.Append(" "); if (operadores.lista().Count > 0) { DesapilaOperando(token, operadores, salida); } operadores.insertar(token); }
static void capicuaPilaListayColaCircular() { bool capicua; string numero; PilaLista pila = new PilaLista(); ColaCircular circula_Cola = new ColaCircular(); try { capicua = false; while (!capicua) { do { Console.WriteLine("\nTeclea un numero: "); numero = Console.ReadLine(); } while (!valido(numero)); //pone en la cola y en la pila cada digito for (int i = 0; i < numero.Length; i++) { Char c; c = numero[i]; circula_Cola.insertar(c); pila.insertar(c); } //se retira de la cola y pila para comparar do { Char d; d = (Char)circula_Cola.quitar(); capicua = d.Equals(pila.quitar()); //compara la igualdad } while (capicua && !circula_Cola.colaVacia()); if (capicua) { Console.WriteLine($"Numero {numero} es capicua"); } else { Console.WriteLine($"njmero {numero} no es capicua"); Console.WriteLine("intente otro"); } // vaciar estructuras circula_Cola.borrarCola(); pila.limpiarPila(); } } catch (Exception errores) { Console.WriteLine($"Error en {errores.Message}"); } }
static void Capicua_original() { bool capicua; String numero; PilaLista pila = new PilaLista(); ColaCircular circular_cola = new ColaCircular(); try { capicua = false; while (!capicua) { do { Console.WriteLine("Teclea un número"); numero = Console.ReadLine(); } while (!validar(numero)); //Pone en la cola y en la pila cada digito for (int i = 0; i < numero.Length; i++) { char c; c = numero[i]; circular_cola.insertar(c); pila.insertarPila(c); } //Desencolar, se retira la cola y pila para comparar do { char d; d = (Char)circular_cola.quitar(); capicua = d.Equals(pila.quitar());//Compara la igualdad } while (capicua && !circular_cola.colaVacia()); if (capicua) { Console.WriteLine($"Numero {numero} es capicua"); } else { Console.WriteLine($"El numero {numero} no es capicua"); Console.WriteLine("Intente otro :)"); } circular_cola.borrarCola(); pila.LimpiarPila(); } } catch (Exception errores) { Console.WriteLine($"Error en{errores.Message} "); } }
static void Main(string[] args) { //PROGRAMA CAPICUA // programa capicua Ejercicio1(); bool capicua; string numero; PilaLista pila = new PilaLista(); ColaCircular circula_Cola = new ColaCircular();
public static void programa1() { bool capicua; string numero; PilaLista Pila = new PilaLista(); ColaCircular circula_Cola = new ColaCircular(); try { capicua = false; while (!capicua) { do { Console.WriteLine("\nTeclea un numero: "); numero = Console.ReadLine(); } while (!valido(numero)); //PONE EN LA COLA Y EN LA PILA CADA DIGITO for (int i = 0; 0 < numero.Length; i++) { Char c; c = numero[i]; circula_Cola.insertar(c); Pila.insertar(c); } //SE RETIRA DE LA COLA Y PILA PARA COMPARAR do { Char d; d = (Char)circula_Cola.quitar(); capicua = d.Equals(Pila.quitar()); } while (capicua && !circula_Cola.colaVacia()); if (capicua) { Console.WriteLine($"Numero {numero} es capicua"); } else { Console.WriteLine($"njmero {numero} no es capicua"); Console.WriteLine("intente otro"); } // vaciar estructuras circula_Cola.borrarcola(); Pila.limpiarPila(); } } catch (Exception errores) { Console.WriteLine($"Error en {errores.Message}"); } }
public static void esCapicula_UMG() { //programa capicua bool capicua; string numero; Ejercicios ejercicios = new Ejercicios(); PilaLista pila = new PilaLista(); ColaCircular colaCircular = new ColaCircular(); try { capicua = false; while (!capicua) { do { Console.WriteLine("\nTeclee un numero: "); numero = Console.ReadLine(); } while (!ejercicios.valido(numero)); //pone en la cola y en la pila cada digito for (int i = 0; i < numero.Length; i++) { char c; c = numero[i]; colaCircular.insertar(c); pila.insertar(c); } //se retira de la cola y pila para comparar do { char d; d = (char)colaCircular.quitar(); capicua = d.Equals(pila.quitar()); } while (capicua && !colaCircular.colaVacia()); if (capicua) { Console.WriteLine($"Numero {numero} es capicua"); } else { Console.WriteLine($"Numero {numero} no es capicua"); Console.WriteLine("Intente otro"); } //vaciar estructuras colaCircular.borrarCola(); pila.limpiarPila(); } } catch (Exception errores) { Console.WriteLine($"Eror en {errores.Message}"); } }
static void EjemploPilaLista() { PilaLista pl = new PilaLista(); pl.insertar(3); pl.insertar(4); pl.insertar(8); pl.insertar(2); pl.insertar(1); var xx = pl.quitar(); }
public static void CapicuaQueue() { bool capicua; string numero; PilaLista pila = new PilaLista(); ColaCircular circula_Cola = new ColaCircular(); try { capicua = false; while (!capicua) { do { Console.WriteLine("\n Teclea un numero: "); numero = Console.ReadLine(); } while (!valido(numero)); //pone en la cola y en la capicua cada digito for (int i = 0; i < numero.Length; i++) { Char c; c = numero[i]; circula_Cola.insertar(c); qt.Enqueue(c); //pila.insertar(c); } //se retira de la cola y pila para comparar do { Char d; d = (char)qt.Dequeue(); //d = (Char)circula_Cola.quitar(); //capicua = d.Equals(pila.quitar()); capicua = d.Equals(qt.Dequeue()); //compara la igualdad } while (capicua && !IsEmpty()); /*circula_Cola.colaVacia());*/ if (capicua) { Console.WriteLine($"Numero {numero} es capicua"); } else { Console.WriteLine($"Numero {numero} no es capicua"); Console.WriteLine("intente otro"); } } } catch (Exception errores) { Console.WriteLine($"Error en {errores.Message} "); } Console.ReadKey(); }
static void EjemploPilaLista() { PilaLista pl = new PilaLista(); pl.insertar(1); pl.insertar(5); pl.insertar(16); pl.insertar(217); pl.insertar(41); pl.insertar(19); var xx = pl.quitar(); // int pau; // pau = 0; }
static void LIFOExample() { PilaLista pl = new PilaLista(); pl.insertar(1); pl.insertar(5); pl.insertar(16); pl.insertar(217); pl.insertar(41); pl.insertar(19); var xx = pl.quitar(); int pau; pau = 0; }
private void VaciarOperandos(StringBuilder salida, PilaLista operadores) { salida.Append(" "); while (operadores.lista().Count > 0) { string sop = (string)operadores.quitar(); if (sop == "(") { throw new Exception("Error falta parentesis de cierre )"); } salida.Append(sop + " "); } }
static void PalindromeStack() { PilaLista pilaLs; bool esPalindromo; String pal; try { pilaLs = new PilaLista(); Console.WriteLine("Teclee una palabra para ver si es "); pal = Console.ReadLine(); string remplazada = Regex.Replace(pal, @"\s", ""); string convertida = remplazada.ToLower(); string textoSinAcentos = DeleteSpecialCharacters(convertida); //creamos la pila con los chars for (int i = 0; i < textoSinAcentos.Length;) { Char c; c = textoSinAcentos[i++]; pilaLs.insertar(c); } //comprueva si es palindromo esPalindromo = true; for (int j = 0; esPalindromo && !pilaLs.pilaVacia();) { Char c; c = (Char)pilaLs.quitar(); esPalindromo = textoSinAcentos[j++] == c;//evalua si la posicion es igual o no es igual } pilaLs.limpiarPila(); if (esPalindromo) { Console.WriteLine($"La palabra {pal} es palindromo"); } else { Console.WriteLine($"Nel, no es "); } } catch (Exception error) { Console.WriteLine($"ups error {error.Message}"); } }
private string convertir(string infija) { String posfija = ""; PilaLista pila = new PilaLista(); for (int i = 0; i < infija.Length; i++) { //obtengo el caracter char caracter = infija[i]; if (operador(caracter)) { if (pila.pilaVacia()) { pila.insertar(caracter); } else { //evuluamos la prioridad if (prieoridadExpresion(caracter) > prieoridadPila((char)pila.cimaPila())) { pila.insertar(caracter); } else { //desapilar posfija += pila.quitar(); //apilamos el nuevo operador pila.insertar(caracter); } } } else { posfija += caracter; } } //sacamos todo lo de la pila while (!pila.pilaVacia()) { //desapilamos y guardamos todos los datos de la pila en la posfija posfija += pila.quitar(); } return(posfija); }
public void polindromoLista() { PilaLista pilaChar; bool esPalindromo; String pal; try { pilaChar = new PilaLista(); Console.WriteLine("Teclee una palabra"); pal = Console.ReadLine(); //creamos la pila con los char foreach (var letra in pal) { Char c; c = letra; pilaChar.insertar(c); } //comprueba si es palindromo esPalindromo = true; for (int i = 0; esPalindromo && !pilaChar.pilaVacia();) { Char c; c = (Char)pilaChar.quitarChar(); esPalindromo = pal[i++] == c; // evalua si la sigueinte letra es igual } pilaChar.limpiarPila(); if (esPalindromo) { Console.WriteLine($"La palabra es palindromo"); } else { Console.WriteLine($"La palabra no es un palindromo"); } } catch (Exception error) { Console.WriteLine($"ups error {error.Message}"); } }
private double evaluarPosfija(string posfija) { PilaLista pila = new PilaLista(); for (int i = 0; i < posfija.Length; i++) { char caracter = posfija[i]; if (!operador(caracter)) { double num = double.Parse(caracter.ToString()); pila.insertar(num); } else { double desapilar1 = (double)pila.quitar(); double desapilar2 = (double)pila.quitar(); double desapilar3 = operar(caracter, desapilar1, desapilar2); pila.insertar(desapilar3); } } return((double)pila.cimaPila()); }
public void DesapilaOperando(string operador, PilaLista lista, StringBuilder salida) { int dato = prioridad(operador); string op = (string)lista.quitar(); int dato2 = prioridad(op); while (dato <= dato2) { salida.Append(op + " "); if (lista.lista().Count == 0) { break; } op = (string)lista.quitar(); dato2 = prioridad(op); } if (dato > dato2) { lista.insertar(op); } }
static void listaInversa() { PilaLista invertido = new PilaLista(); Lista datos = new Lista(); Random numeros = new Random(); for (int i = 1; i <= 10; i++) { datos.Final(numeros.Next(1, 21)); } datos.mostrarDatos(); IterarLista listaInversa = new IterarLista(datos); Nodo a; a = listaInversa.next(); while (a != null) { invertido.insertar(a.getDato()); a = a.getSiguiente(); } invertido.mostrarDatos(); }
static void capicua() { Queue qt = new Queue(); //qt.Enqueue("hola"); //qt.Enqueue("esto"); //qt.Enqueue("es"); //qt.Enqueue("una"); //qt.Enqueue("prueba"); //Console.WriteLine($"La cola tiene {qt.Count} elementos"); //Console.WriteLine($"Desencolando {qt.Dequeue()}"); //programa capicua bool capicua; string numero; PilaLista pila = new PilaLista(); ColaCircular circula_Cola = new ColaCircular(); try { capicua = false; while (!capicua) { do { Console.WriteLine("Tecleea un numero: "); numero = Console.ReadLine(); } while (!valido(numero)); //pone en la cola y en la pila cada digito for (int i = 0; i < numero.Length; i++) { Char c; c = numero[i]; circula_Cola.insertar(c); pila.insertar(c); } //se retira de la cola y de la pila comparar do { Char d; d = (Char)circula_Cola.quitar(); capicua = d.Equals(pila.quitar()); } while (capicua && !circula_Cola.colaVacia()); if (capicua) { Console.WriteLine($"Numero{numero} es Capicua"); } else { Console.WriteLine($"El numero {numero} no es capicua"); Console.WriteLine("Ingrese otro numero: "); } //vaciar estructuras circula_Cola.borrarCola(); pila.limpiarPila(); } } catch (Exception error) { Console.WriteLine($"Error en {error.Message} "); } }