// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: Pila.cs
//
// Propósito: Creación de una clase genérica.
//
============================================================*/
using System;
namespace Articulos.Cha03
{
internal class Pila<T>
{
// Posición de un elemento en la pila:
private int posicion;
// Elementos de datos como un arreglo estándar:
private T[] datos = new T[100];
// Constructor:
public Pila()
{
posicion = 0;
}
// Coloca un elemento de dato en la pila:
public void Push(T elemento)
{
datos[posicion++] = elemento;
}
// Retira un elemento de dato de la pila:
public T Pop()
{
return datos[--posicion];
}
}
internal class PruebaPila
{
public static void Main()
{
Pila<double> puntosFlotantes = new Pila<double>();
puntosFlotantes.Push(0.577215664901D);
puntosFlotantes.Push(1.618033988D);
puntosFlotantes.Push(1.414213562D);
double raizDos = puntosFlotantes.Pop(); // 1.414213562
double mediaAureal = puntosFlotantes.Pop(); // 1.618033988
double constanteEuler = puntosFlotantes.Pop(); // 0.577215664901
Console.WriteLine(raizDos.ToString());
Console.WriteLine(mediaAureal.ToString());
Console.WriteLine(constanteEuler.ToString());
}
}
}