ciao a tutti, sono riuscito a creare la struttura dati lista mediante i cursori. in pratica la struttura viene compilata correttamente però il test va in crash. ecco i codici da me creati:
listacur.h
codice:
#ifndef listacur_h
#define listacur_h
#include <stdlib.h>
#include <iostream>
using namespace std;
const int dimvettore=100;
template <class tipoelem> //classe tempalate per la lista
class listacur
{
typedef int pos;
public:
listacur();
void crealista();
/*bool listavuota();
tipoelem leggilista (pos);
void scrivilista (tipoelem,pos);
pos primolista();
bool finelista (pos);
pos suclista (pos);
pos predlista(pos);
void inslista (tipoelem,pos);
void canclista (pos);*/
private:
typedef struct cella { //struttura elemento lista
tipoelem elem;
int prec;
int succ; } cella;
int lunglista;
static cella *spazio;
static pos listalibera;
pos lista;
static bool inizializzato;
static cella * inizializza();
};
#endif
template<class tipoelem>
typename listacur<tipoelem>::cella *listacur<tipoelem>::inizializza()
{
if (!inizializzato)
{
spazio[0].prec= dimvettore-1;
spazio[0].succ= 1;
for (int i=1;i<dimvettore;i++)
{
spazio[i].prec=(i-1)%dimvettore;
spazio[i].succ=(i+1)%dimvettore;
}
inizializzato=true;
return(spazio);
}
}
template<class tipoelem>
typename listacur<tipoelem>::cella *listacur<tipoelem>::spazio = listacur<tipoelem>::inizializza();
template<class tipoelem>
typename listacur<tipoelem>::pos listacur<tipoelem>::listalibera = 0;
template <class tipoelem> //INIZIALIZZATO
bool listacur<tipoelem>::inizializzato=false;
template <class tipoelem>
listacur<tipoelem>::listacur() //COSTRUTTORE
{
crealista();
}
template <class tipoelem>
void listacur<tipoelem>::crealista() //CREALISTA
{
lista=listalibera;
spazio[lista].prec=lista;
spazio[lista].succ=lista;
listalibera=spazio[listalibera].succ;
}
testlistacur.cpp
codice:
#include "listacur.h"
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
listacur<int> lista;
system ("PAUSE");
return 0;
}
come detto prima, il test va in crash. dove ho sbagliato???
sperando che qualcuno risponda vi saluto e vi auguro una buona giornata.