scusami, la posto subito.
listap.h
codice:
#ifndef _listap_h
#define _listap_h
#include "nodo.h"
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
template<class tipoelem>
class listap
{
public:
typedef nodo<tipoelem> *posizione;
listap();
void crealista();
bool listavuota();
posizione primolista();
bool finelista(posizione);
tipoelem leggilista(posizione);
void scrivilista(posizione, tipoelem);
posizione succlista(posizione);
private:
nodo<tipoelem> cella;
};
#endif
template<class tipoelem>
listap<tipoelem>::listap()
{
crealista();
}
template<class tipoelem>
void listap<tipoelem>::crealista()
{
cella.setprec(&cella);
cella.setsuc(&cella);
cella.setelem(0);
}
template<class tipoelem>
bool listap<tipoelem>::listavuota()
{
return((cella.getprec() == &cella) && (cella.getsuc() == &cella));
}
template<class tipoelem>
typename listap<tipoelem>::posizione listap<tipoelem>::primolista()
{
return(&cella);
}
template<class tipoelem>
bool listap<tipoelem>::finelista(typename listap<tipoelem>::posizione pos)
{
return(pos->getsuc() == primolista());
}
template<class tipoelem>
tipoelem listap<tipoelem>::leggilista(typename listap<tipoelem>::posizione pos)
{
return(pos->getelem());
}
template<class tipoelem>
void listap<tipoelem>::scrivilista(typename listap<tipoelem>::posizione pos, tipoelem elem)
{
pos->setelem(elem);
}
template<class tipoelem>
typename listap<tipoelem>::posizione succlista(typename listap<tipoelem>::posizione pos)
{
return(pos->getsuc());
}