Pessoal meu código roda, mas, a tela que aparece é uma loucura, alguém saberia pq? :oops:
[code]#include <stdio.h>
#include <stdlib.h>
#define N 5
typedef struct Lista{
int valorVertice; //valor de cada vértice da lista
struct Lista *prox;
}TLista;
void insereLse (TLista *&listaAdj, int novoVertice){
TLista *aux, *novo;
novo = (TLista*) malloc ((int)sizeof(TLista)); /*retorna um ponteiro genérico (void), q pode ser
ser convertido para qualquer tipo.*/
novo -> valorVertice = novoVertice;
novo -> prox = NULL;
if (listaAdj == NULL)
listaAdj = novo;
else{
aux = listaAdj;
while (aux -> prox != NULL)
aux = aux -> prox;
aux -> prox = novo;
}
free(novo);
}
void lerGrafo (char Grafos[30],TLista *listaAdj[N]){
FILE *arq;
int index, vertice;
arq = fopen ("Grafos.dat","r");
if (arq == NULL){
printf ("\nErro ao abrir o arquivo.\n");
return;
}
else{
for ( index = 0; index < N; index++){
while (fscanf (arq,"%d",&vertice) != EOF){
insereLse(listaAdj[index],vertice);
fscanf(arq,"%d",&vertice);
}
}
}
fclose(arq);
if (fclose(arq)!= 0){
printf ("\nErro ao fechar o arquivo.\n");
return;
}
else
printf ("\nArquivo fechado com sucesso.\n");
}
void imprimeLista (TLista *listaAdj[N]){
int index;
TLista *aux;
for (index = 0; index < N; index++){
aux = listaAdj[index];
printf ("\n-> %d\n\n",index);
while (aux != NULL){
printf ("[", aux -> valorVertice, "]");
aux = aux -> prox;
}
}
}
int main()
{
TLista *listaAdj[N];
int index;
for ( index = 0; index < N; index++ )
listaAdj[index] = NULL; //inicializando a lista
//CHAMADA DAS FUNÇÕES
lerGrafo("D:/Meus documentos/Paloma/Informática/ListaAdj/Grafos.dat",listaAdj);
imprimeLista(listaAdj);
system("PAUSE");
return (0);
}
[/code]