ciao a tutti, ho implementato la struttura dati insieme rappresentandolo con una lista di puntatori. dopo di chè ho fatto un test per provare se i metodi sono corretti però, dato che la libreria della lista è situata in un'altra cartella, mi viene visualizzato un errore di compilazione. in pratica non viene inserita la libreria nel codice. posto i codici.
insiemel.h
codice:
#ifndef insiemel_h
#define insiemel_h
#include<iostream>
#include<stdlib.h>
#include "listap.h"
using namespace std;
template<class tipoelem>
class insiemel
{
public:
insiemel();
void creainsieme();
bool insiemevuoto();
bool appartiene(tipoelem);
void inserisci(tipoelem);
void cancella(tipoelem);
void unione(insiemel, insiemel);
void intersezione(insiemel, insiemel);
void differenza(insiemel, insiemel);
tipoelem getelem();
private:
listap<tipoelem> elementi;
};
#endif
template<class tipoelem>
tipoelem insiemel<tipoelem>::getelem()
{
return(elementi.leggilista(elementi.primolista());
}
template<class tipoelem>
insiemel<tipoelem>::insiemel()
{
this->creainsieme();
}
template<class tipoelem>
void insiemel<tipoelem>::creainsieme()
{
elementi = NULL;
}
template<class tipoelem>
bool insiemel<tipoelem>::insiemevuoto()
{
return(elementi.listavuota());
}
template<class tipoelem>
bool insiemel<tipoelem>::appartiene(tipoelem elem)
{
bool trovato = false;
listap<tipoelem>::posizione p = elementi.primolista();
while((p != elementi.preclista(elementi.primolista())) && !trovato)
{
if(elementi.leggilista(p) == elem)
trovato = true;
else
p = elementi.suclista(p);
}
return trovato;
}
template<class tipoelem>>
void insiemel<tipoelem>::inserisci(tipoelem elem)
{
if(!this->appartiene(elem))
this->inserisci(elem);
}
template<class tipoelem>
void insiemel<tipoelem>::cancella(tipoelem)
{
bool trovato = false;
listap<tipoelem>::posizione p = elementi.primolista();
while((p != elementi.preclista(elementi.primolista())) && !trovato)
{
if(elementi.leggilista(p) == elem)
{
trovato = true;
elementi.canclista(p);
}
else
p = elementi.suclista(p);
}
}
template<class tipoelem>
void insiemel<tipoelem>::unione(insiemel<tipoelem> A, insiemel<tipoelem> B)
{
while(!A.insiemevuoto())
{
this->inserisci(A.getelem());
A.cancella(A.getelem());
}
while(!B.insiemevuoto())
{
this->inserisci(B.getelem());
B.cancella(B.getelem());
}
}
template<class tipoelem>
void insiemel<tipoelem>::intersezione(insiemel<tipoelem> A, insiemel<tipoelem> B)
{
while(!A.insiemevuoto())
{
if(B.appartiene(A.getelem())
this->inserisci(A.getelem());
A.cancella(A.getelem());
}
}
template<class tipoelem>
void insiemel<tipoelem>::differenza(insiemel<tipoelem> A, insiemel<tipoelem> B)
{
while(!A.insiemevuoto())
{
if(!B.appartiene(A.getelem()))
this->inserisci(A.getelem());
A.cancella();
}
}
testinsiemel.cpp
codice:
#include "insiemel.h"
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
insiemel<int> set;
system("pause");
return 0;
}
premesso che ho fatto la procedura dell'inserimento della libreria della lista, l'errore che mi viene visualizzato è il seguente:
6 C:\Dev-Cpp\Insieme\insiemel.h listap.h: No such file or directory.
cosa c'è che non va?