Salve, ripropongo il problema posto sopra, sintetizzando il tutto.
Devo creare un grafo utilizzando liste di adiacenza.
Il grafo lo creo dichiarando nel main un array di n elementi di tipo
grafo (grafo è una classe).
Ogni elemento di questo array è collegato tramite puntatore ad una lista.
Per la gestione della lista utilizzo un altra classe.
Sono costretto ad utilizzare queste due classi per l'implementazione di diversi algoritmi.
Ora ho il problema che non riesco a collegare le due classi tramite i puntatori, mi è stato suggerito di utilizzare i template e non saprei come fare.
copio il codice essenziale per chiarire la situazione:
codice:
#include <iostream>
#define SIZE 50//size del grafo=numero dei vertici
#include <string>
using namespace std;
class lista
{
private:
lista *pnext;
grafo *nodo; //qui presenta l'errore però il collegamento alla struttura grafo mi serve !!
int peso;
public:
//tralasciate questo costruttore
/*lista(grafo **N, int pes)
{
nodo=N;
peso=pes;
p_next=NULL;
}*/
};
class grafo
{
private:
int vert;
lista *next;
string color;
grafo *p;
int d;
public:
//Realizzo il costruttore per l'inizializzazione dei dati membro
grafo (int v)
{
vert=v;
next=NULL;
}
};
void main()
{
//creazione grafo
grafo *GRAFO[SIZE];
}
ecco gli errori:
Compiling...
main.cpp
I:\algoritm\aaaa\main.cpp(11) : error C2143: syntax error : missing ';' before '*'
I:\algoritm\aaaa\main.cpp(11) : error C2501: 'grafo' : missing storage-class or type specifiers
I:\algoritm\aaaa\main.cpp(11) : error C2501: 'nodo' : missing storage-class or type specifiers
Error executing cl.exe.
grazie per chi avrà tanta pazienza e ingegno