using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int tam;
Console.WriteLine("capture el tamaño de la pila");
tam = int.Parse(Console.ReadLine());
string[] pila = new string[tam];
string Elemento = string.Empty;
string op = string.Empty;
do
{
Console.Write("\n\nMenú \n 1)Meter elemento a la pila \n 2)Muestra pila \n 3)Suprime elemento de la cima \n 0)Salir \n\n");
op = Console.ReadLine();
switch (op)
{
case "1":
Console.Write("INGRESAR VALORES A LA PILA \n");
Console.Write("Escriba el dato a ingresar a la pila:");
Elemento = Console.ReadLine();
while (string.IsNullOrEmpty(Elemento))
{
Console.Write("Ingrese un valor válido a la pila:");
Elemento = Console.ReadLine();
}
if (estaLlena(pila))
{
Console.Write("La pila está llena, imposible agregar nuevo valor \n");
}
else
{
Meter(pila, Elemento);
}
break;
case "2":
Console.Write("MOSTRAR PILA \n");
if (esVacia(pila))
{
Console.Write("La pila está vacia \n");
}
else
{
Mostrar(pila);
}
break;
case "3":
Console.Write("SUPRIME ELEMENTO DE LA PILA \n");
if (esVacia(pila))
{
Console.Write("La pila tiene espacio en la disponible \n");
}
else
{
Suprime(pila);
Console.Write("El elemento de la cima suprimido");
}
break;
default:
Console.Write("saliendo");
break;
}
} while (!op.Equals("0"));
}
static public bool esVacia(string[] _pila)
{
bool fl = true;
for (int i = _pila.Length - 1; i >= 0; i--)
{
if (_pila[i] != null)
{
fl = false;
break;
}
}
return fl;
}
static public bool estaLlena(string[] _pila)
{
bool fl = false;
int count = 0;
for (int i = _pila.Length - 1; i >= 0; i--)
{
if (_pila[i] != null)
{
count += 1; ;
}
}
if (count == _pila.Length) { fl = true; }
return fl;
}
static public bool Suprime(string[] _pila)
{
bool fl = false;
for (int i = _pila.Length - 1; i >= 0; i--)
{
if (_pila[i] != null)
{
_pila[i] = null;
fl = true;
break;
}
}
return fl;
}
static public bool Meter(string[] _pila, string _elemento)
{
bool fl = false;
for (int i = _pila.Length - 1; i >= 0; i--)
{
if (_pila[i] != null)
{
_pila[i + 1] = _elemento;
fl = true;
break;
}
else if (_pila[i] == null && i == 0)
{
_pila[i] = _elemento;
fl = true;
break;
}
}
return fl;
}
static public void Mostrar(string[] _pila)
{
for (int i = _pila.Length - 1; i >= 0; i--)
{
if (_pila[i] != null)
{
Console.Write(_pila[i] + "\n");
}
}
}
}
}
bueno como veo tu programa me parece interesante solo no se deberias explicar como muestras tus datos ya que tu funcion esVacia no se me hace muy clara, pero aun asi gracias por tu aporte
ResponderEliminarpfff en serio? @Angel Uriel Pérez, es uno de los mejores programas que he visto y mas claro no puede estar.
ResponderEliminarpfff en serio? @Angel Uriel Pérez, es uno de los mejores programas que he visto y mas claro no puede estar.
ResponderEliminarGracias Me ha servido de mucho...
ResponderEliminarTe amo
ResponderEliminar