class Program
{
class Nodo
{
public int info;
public Nodo sig;
}
private Nodo raiz;
public Program()
{
raiz = null;
}
public void Insertar(int x)
{
Nodo nuevo;
nuevo = new Nodo();
nuevo.info = x;
if (raiz == null)
{
nuevo.sig = null;
raiz = nuevo;
}
else
{
nuevo.sig = raiz;
raiz = nuevo;
}
}
public int Extraer()
{
if (raiz != null)
{
int informacion = raiz.info;
raiz = raiz.sig;
return informacion;
}
else
{
return int.MaxValue;
}
}
public void Imprimir()
{
Nodo reco = raiz;
Console.WriteLine("Listado de todos los elementos de la pila.");
while (reco != null)
{
Console.Write(reco.info + "-");
reco = reco.sig;
}
Console.WriteLine();
}
static void Main(string[] args)
{
int opcion = 0;
Program pila1 = new Program();
do
{
Console.WriteLine("Bienvenido al menù de opciones");
Console.WriteLine("\n" +
"\n 1.- Insertar" +
"\n 2.- Extraer" +
"\n 3.- Imprimir" +
" \n 4.- Tope de la pila"+
" \n 5.- Primer elemento de la pila"+
" \n 6.- Imprimir del primer elemento al tope de la pila"+
" \n 7.-Salir \n ");
Console.WriteLine("Seleccione una opciòn");
opcion = Convert.ToInt32(Console.ReadLine());
switch (opcion)
{
case 1:
Console.WriteLine("Inserte un número.");
int x = Convert.ToInt32(Console.ReadLine());
pila1.Insertar(x );
pila1.Imprimir();
break;
case 2:
Console.WriteLine("Extraemos de la pila:" + pila1.Extraer());
pila1.Imprimir();
break;
case 3:
pila1.Imprimir();
break;
case 6:
case 7:
Console.OpenStandardOutput();
break;
}
} while (opcion != 4);
Console.ReadKey();
}
}