static void Main(string[] args) { string origen = "nombre", reemplazo = "Francisco"; PilaVinculada <string> pila = new PilaVinculada <string>(); pila.Apila("Antonio"); pila.Apila("nombre"); pila.Apila("Maria"); pila.Apila("nombre"); pila.Apila("Pilar"); pila.Apila("Roberto"); pila.Apila("nombre"); Console.WriteLine("Pila sin reemplazar:"); foreach (string dato in pila) { Console.WriteLine(dato); } Console.WriteLine($"\nVamos a reemplazar los \"{origen}\" por \"{reemplazo}\":"); cambiaPila(pila, "nombre", "Franciso"); foreach (string dato in pila) { Console.WriteLine(dato); } }
public static void cambiaPila(PilaVinculada <string> pila, string origen, string reemplazo) { Queue <string> c = new Queue <string>(); PilaVinculada <string> pilaAux = new PilaVinculada <string>(); while (pila.Elementos > 0) { if (pila.Peek() == origen) { pila.Desapila(); pila.Apila(reemplazo); } c.Enqueue(pila.Desapila()); } while (c.Count > 0) { pilaAux.Apila(c.Dequeue()); } while (pilaAux.Elementos > 0) { pila.Apila(pilaAux.Desapila()); } }