fork download
  1. // ===++===
  2. //
  3. // OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: Pila.cs
  9. //
  10. // Propósito: Creación de una clase genérica.
  11. //
  12. ============================================================*/
  13.  
  14. using System;
  15.  
  16. namespace Articulos.Cha03
  17. {
  18. internal class Pila<T>
  19. {
  20. // Posición de un elemento en la pila:
  21. private int posicion;
  22.  
  23. // Elementos de datos como un arreglo estándar:
  24. private T[] datos = new T[100];
  25.  
  26. // Constructor:
  27. public Pila()
  28. {
  29. posicion = 0;
  30. }
  31.  
  32. // Coloca un elemento de dato en la pila:
  33. public void Push(T elemento)
  34. {
  35. datos[posicion++] = elemento;
  36. }
  37.  
  38. // Retira un elemento de dato de la pila:
  39. public T Pop()
  40. {
  41. return datos[--posicion];
  42. }
  43. }
  44.  
  45. internal class PruebaPila
  46. {
  47. public static void Main()
  48. {
  49. Pila<double> puntosFlotantes = new Pila<double>();
  50.  
  51. puntosFlotantes.Push(0.577215664901D);
  52. puntosFlotantes.Push(1.618033988D);
  53. puntosFlotantes.Push(1.414213562D);
  54.  
  55. double raizDos = puntosFlotantes.Pop(); // 1.414213562
  56. double mediaAureal = puntosFlotantes.Pop(); // 1.618033988
  57. double constanteEuler = puntosFlotantes.Pop(); // 0.577215664901
  58.  
  59. Console.WriteLine(raizDos.ToString());
  60. Console.WriteLine(mediaAureal.ToString());
  61. Console.WriteLine(constanteEuler.ToString());
  62. }
  63. }
  64. }
Success #stdin #stdout 0.03s 34720KB
stdin
Standard input is empty
stdout
1.414213562
1.618033988
0.577215664901