[RESOLVIDO] - Duvida em C - Lista Encadeada

Galera, estou com uma duvida, vo postar o meu codigo eu vo explicar depois =D

[code]
// vo postar apenas algumas partes…

struct cliente *ptr_primeiro_cliente, *ptr_anterior_cliente, *ptr_novo_cliente;
int countCliente = 0;

// tenho a minha struct cliente
struct cliente {
int id_cliente;
int telefone_cliente;
char nome_cliente[50];
char endereco_cliente[50];
struct cliente *ptr_cliente;
};

// tenho o meu cadastro cliente

void cadastrarCliente(){
char nome[50], endereco[50];
int telefone;

validarEstruturaCliente(); // chamo a logica para fazer uns negocios que eu nao entendi bem =/
fflush(stdin);
printf("Digite o nome do cliente: ");
gets(nome);
printf("Digite o endereco do cliente: ");
gets(endereco);
printf("Digite o telefone do cliente: ");
scanf("%d", &telefone);    

strcpy(ptr_anterior_cliente -> nome_cliente, nome);
strcpy(ptr_anterior_cliente -> endereco_cliente, endereco);
ptr_anterior_cliente -> telefone_cliente = telefone;
ptr_anterior_cliente -> id_cliente = countCliente;

ptr_anterior_cliente -> ptr_cliente = (struct cliente *) NULL;
countCliente++;

printf("\n\nCliente cadastrado com sucesso!!\n\n");
_sleep(3000);
system ("cls");

}

// faz a minha logica que eu nao entendi direito, apenas copiei o exemplo do professor…
void validarEstruturaCliente(){
ptr_novo_cliente = (struct cliente *) malloc (sizeof(struct cliente));
if (ptr_primeiro_cliente == (struct cliente *)NULL){
ptr_primeiro_cliente = ptr_anterior_cliente = ptr_novo_cliente;
} else {
ptr_anterior_cliente = ptr_primeiro_cliente;
while (ptr_anterior_cliente -> ptr_cliente != (struct cliente *) NULL){
ptr_anterior_cliente = ptr_anterior_cliente -> ptr_cliente;
}
ptr_anterior_cliente -> ptr_cliente = ptr_novo_cliente;
ptr_anterior_cliente = ptr_novo_cliente;
}
}

void listar(){
// gostaria de fazer a funcao listar, porem nao sei como, procurei no google mas nao encontrei nada que me desse uma luz… alguem!?
}[/code]

Então, meu professor da faculdade pediu para fazer um exercicio de cadastro de cliente com lista encadeada…

Porem eu não tenho a minima ideia de como eu faço para listar os itens da listaaa

alguem da uma força aee?!

vlllw =D

Comece pelo começo (ptr_primeiro_cliente), e vá percorrendo o próximo (cliente_atual->ptr_cliente) até que ele seja nulo.

Estude o while dentro da função validarEstruturaCliente, é bem parecido.

opaa vllw carinhaa =D

consegui resolveer… segue meu codigoo…

[code]

void listarClientes(){

ptr_anterior_cliente = ptr_primeiro_cliente;
while (ptr_anterior_cliente != NULL) {
    printf("\nCodigo do cliente: %d", ptr_anterior_cliente -> id_cliente);
    printf("\nNome do cliente: %s", ptr_anterior_cliente -> nome_cliente);
    printf("\nEndereco do cliente: %s", ptr_anterior_cliente -> endereco_cliente);
    printf("\nTelefone do cliente: %d", ptr_anterior_cliente -> telefone_cliente);
    printf("\n----------------------------------");
    ptr_anterior_cliente = ptr_anterior_cliente -> ptr_cliente;
}

}[/code]