• Domingo 22 de Diciembre de 2024, 17:32

Autor Tema:  Guardar una pila, cola o listas  (Leído 2049 veces)

fjmc22

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Guardar una pila, cola o listas
« en: Jueves 10 de Junio de 2010, 14:00 »
0
Hola me gustaria saber como guardar en archivo binario lo que es una pila o una lista.

Os pongo un ejemplo de una pila que estube haciendo.

Un saludo, y gracias.

Código: Pascal
  1. PROGRAM p;
  2. TYPE
  3. TElemento = char;
  4. TPila = ^TNodo;
  5. TNodo = RECORD
  6. e: TElemento;
  7. sig: TPila;
  8. END;
  9.  
  10. TFICHERO = FILE OF TPila;
  11.  
  12. VAR
  13.  pil:TPila;
  14.  ele:TElemento;
  15.  
  16.  PROCEDURE CargarDatos(VAR baraja:TPila);
  17.       VAR
  18.          ficher:TFICHERO;
  19.       BEGIN
  20.                Assign(ficher,'C:pila.dat');
  21.                RESET(ficher);
  22.                  read(ficher,baraja);
  23.                CLOSE(ficher);
  24.       END;
  25.  
  26.    {Esto lo que hace es guardar una partida en ficheros binario, lo hace guardando los 10 registros que contienen datos de la partida}
  27.  
  28.    PROCEDURE GuardarDatos(VAR baraja:TPila);
  29.       VAR
  30.          ficher:TFICHERO;
  31.       BEGIN
  32.  
  33.          Assign(ficher,'C:pila.dat');
  34.           REWRITE(ficher);
  35.            write(ficher,baraja);
  36.          CLOSE(ficher);
  37.  
  38.       END;
  39.  
  40.  
  41. PROCEDURE CrearPilaVacia(VAR pila: TPila);
  42. BEGIN
  43.         pila := NIL;
  44. END;
  45. FUNCTION EsPilaVacia(pila: TPila): boolean;
  46. BEGIN
  47. EsPilaVacia := (pila = NIL);
  48. END;
  49. PROCEDURE Apilar(VAR pila: TPila; e: TElemento);
  50. VAR
  51. aux: TPila;
  52. BEGIN
  53. new(aux);
  54. aux^.e:=e;
  55. aux^.sig:= pila;
  56. pila:=aux;
  57. END;
  58. PROCEDURE Desapilar(VAR pila: TPila);
  59. VAR
  60. aux: TPila;
  61. BEGIN
  62. IF NOT EsPilaVacia(pila) THEN
  63. BEGIN
  64. aux := pila;
  65. pila := pila^.sig;
  66. dispose(aux);
  67. END;
  68. END;
  69. PROCEDURE Cima(pila: TPila; VAR e: TElemento);
  70. {Implementado como procedimiento por generalidad. Una función
  71. podría no ser capaz de devolver TElemento.
  72. Se devuelve la cima sin eliminar el elemento de la pila.}
  73. BEGIN
  74. {Para un tipo simple la asignación simple es válida}
  75. e := pila^.e;
  76. writeln(e);
  77. END;
  78.  
  79.  
  80. BEGIN
  81. CrearPilaVacia(pil);
  82. CargarDatos(pil);
  83. cima(pil,ele);
  84. readln;
  85. END.
  86.  
  87.  

epayan

  • Miembro activo
  • **
  • Mensajes: 41
  • Nacionalidad: mx
    • Ver Perfil
    • http://www.pillin-slk.blogspot.com
Re: Guardar una pila, cola o listas
« Respuesta #1 en: Viernes 11 de Junio de 2010, 18:52 »
0
dirias , guardar los datos de la lista o pila

pues a mi se me ocurriria que mientras recorro la lista hasta no encontrar nill , lo almaceno en un archivo...