PROGRAM Test_Coda
!--------------------------------------------------------------------------
! Programma di test delle operazioni primitive su code
!--------------------------------------------------------------------------
  USE Primitive_Coda         ! Moduli contenenti le primitive di Coda
  IMPLICIT NONE
  TYPE(Cella),POINTER:: p,u  ! Puntatori al primo ed ultimo elemento
  INTEGER :: e

  NULLIFY(p,u)               ! Inizializza la coda come "vuota"
  WRITE(*,*) "Costruisco una coda"
  WRITE(*,*) "Dammi di seguito degli interi, uno per riga"
  WRITE(*,*) "Il numero 999 termina i dati "
  DO
    READ(*,*) e
    IF (e==999) EXIT
    CALL In_coda(p,u,e)
  END DO

  WRITE (*,*) "Ecco la coda "
  CALL stampa(p)

  WRITE(*,*) "Ora cancelliamo un elemento alla volta"
  DO
    IF (Test_coda_vuota(p))  EXIT
    WRITE(*,*) "Batti Invio"
    READ(*,*)
    WRITE(*,*) Primo(p), " cancellato!"
    CALL Out_coda(p,u)
  END DO
  STOP
END PROGRAM Test_coda
