// masura de protectie impotriva incluziunii multiple
#ifndef _LISTA_H_
#define _LISTA_H_
#include "data.h"

// definirea tipurilor de data Lista si LISTA
struct lista {
				  DATA info;
				  struct lista *urm;
				  };
typedef struct lista Lista,*LISTA;

// prototipurile functiilor

// initializeaza lista
LISTA newl();
// distruge lista (elibereaza memoria ocupata)
void destroyl(LISTA);
// insereaza valoarea primita ca argument la inceputul listei
LISTA ins_in_fata(LISTA,DATA);
// sterge primul element din lista
LISTA sterge_prim(LISTA);
// afiseaza lista
LISTA ins_la_sfarsit(LISTA,DATA);
// sterge primul element din lista
LISTA sterge_ultimul(LISTA);
// afiseaza lista
void afiseaza_lista(LISTA);
// converteste lista la un sir de caractere
char * toStringl (LISTA l, char * zona);
// returneaza ADEVARAT daca lista este vida si FALS in caz contrar
LOGIC este_vida(LISTA);
// returneaza ADEVARAT daca nu mai exista memorie libera (lista este plina) si FALS in caz contrar
LOGIC este_plina(LISTA);

#endif
