PDA

View Full Version : lista doppiamente linkata in C


mic85rm
24-06-2013, 20:28
Sera a tutti,
ho un problema con questa lista....si compila e non da ne warning ne errori,ma quando la lancio si blocca il tutto e non so che fare consigli?



#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>



struct nodo{
int inf;
struct nodo *succ;
struct nodo *prec;
};
//typedef struct nodo nodo;
//nodo *lista;
struct dlist
{
// tiene traccia di quanti nodi sono presenti all'interno della lista
int count;

// puntatore al primo nodo della lista
struct nodo *testa;

// puntatore all'ultimo nodo della lista
struct nodo *coda;
};
typedef struct nodo nodo;
typedef struct dlist dlist;
int main(){

int v[8]={12,14,14,15,3,3,6,8},prova=8,i;
dlist *lista;
nodo *pezzo;

// la lista inizialmente non contiene elementi
lista->count = 0;

// sia la testa che la coda puntano inizialmente a NULL
lista->testa = lista->coda = NULL;

pezzo = malloc(sizeof(nodo));
pezzo->inf=v[0];
pezzo->succ=NULL;

pezzo->prec = NULL;
lista->testa = lista->coda = pezzo;
// aumento il contatore dei nodi della lista
lista->count++;

// la lista contiene gia' almeno un elemento
// aggancio il nuovo nodo alla fine della lista
// dopo l'inserimento, il nuovo nodo sara' quindi il tailer della lista




for(i=1;i<prova;i++){

pezzo->inf=v[i];
pezzo->succ=NULL;

pezzo->prec= lista->coda;
lista->coda->succ= pezzo;
lista->coda = pezzo;

printf("\n%d",pezzo->inf);
lista->count++;
}
system("PAUSE");
}