mayconvm Postado Novembro 30, 2008 Denunciar Share Postado Novembro 30, 2008 Galera n estou conseguindo entender o que lista encadeada...void Inserir(){ prox = (telem *) malloc (sizeof (telem)); printf("Digite o nome:\n"); gets(prox->nome); printf("Digite o sexo:\n"); gets(prox->sexo); printf("Digite o cpf:\n"); scanf("%d",prox->cpf); L.next = prox; if(L.tam != 0){L.tam = L.tam++;} else {L.tam=0;} }desenvolvi isso mais n funcionar...algem pode me explicar ou me passar algo mais facil de entender... :)Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Novembro 30, 2008 Denunciar Share Postado Novembro 30, 2008 a mas você não por o L.next - prox sem chegar no final da lista.tipo, onde você quer inserir?? no comeco ou no final da lista??entenda q o L aponta por primero endereco. o L->Next aponta pro segundo. o L->next->next aponta pro segundo e assim por diante. ou seja, pra inserir no final você tem q percorrer a lista ate o next ser NULL (se for nulo, significa q não aponta pra nenhum lugar, ou seja não tem nada depois dele, é o ultimo elemento).veja ai e se continuar não funcionando, explica exatamente o q ta acontecendo de errado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mayconvm Postado Novembro 30, 2008 Autor Denunciar Share Postado Novembro 30, 2008 TA ACONTECENDO ASSIM, INSIRE OS ELEMENTOS MAIS ELE SO APONTA PARA O FINAL DA LISTA, NÃO APONTA PARA OS ELEMENTO, POR EXEMPLO SE EU INSERIR 10 PESSOAS, QUANDO EU MANDA EXIBIR ELE EXIBIR 10 REGISTROS MAIS TODOS O MESMO(NO CASO SENDO O ULTIMO).:) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Novembro 30, 2008 Denunciar Share Postado Novembro 30, 2008 então, você quer adicionar no inicio ou no final??se for no final, você tem q fazer um while pra chegar no ultimo elemento da lista e adicionar la.se for no comeco, você poe o l.next no prox.next e o prox no l. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mayconvm Postado Dezembro 3, 2008 Autor Denunciar Share Postado Dezembro 3, 2008 Boa noite Galera!To com serios problemas mesmo... :)não consigo cadastrar no meu programa(no inicio), segue abaixo o codigo:)#include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include <io.h> struct tlista { int tam; struct telem *next; }; struct telem { struct telem *avan; char nome[100],sexo[10]; int cpf; }; struct tlista *L; struct telem *prox; void Inserir(){ prox = (telem *) malloc (sizeof (telem)); printf("tamanho: %d",L->tam); printf("Digite o nome:\n"); scanf("%s",&prox->nome); printf("Digite o sexo:\n"); scanf("%s",&prox->sexo); printf("Digite o cpf:\n"); scanf("%d",&prox->cpf); prox = prox->avan; /* prox->avan = L->next; L->next = prox; */ L->tam++; printf("Inserido com sucesso!\n\n"); } void Buscar(){ char nomeb[100]; int achou=0, i=0; printf("Digite o nome a ser buscado!\n"); scanf("%s",nomeb); tlista *L; while(L->next !=false && achou==1){ if(strcmp(nomeb,prox->nome)){ achou=1; }else{ achou=0; } i++; } if(achou==0){ printf("Nome não encontrado! - %d",L->tam); }else{ printf("Nome encontrado! Na posição %d",L->tam); } } void Exibir(){ int i=0; while(L->next !=false){ printf("\nNome: %s\nSexo:%s\nCPF:%d",prox->nome,prox->sexo,prox->cpf); i++; } } int main() { L = (tlista *) malloc (sizeof (tlista)); int menu; L->tam = 0; free(L); printf("\n 1 - Inserir\n 2 - Buscar\n 3 - Remover\n 4 - Sair\n\n"); scanf("%d",&menu); while(menu<5){ switch(menu){ case 1: Inserir(); break; case 2: Buscar(); break; case 3: Remover(); break; case 4: Exibir(); break; } menu=false; printf("\n 1 - Inserir\n 2 - Buscar\n 3 - Remover\n 4 - Sair\n\n"); scanf("%d",&menu); } system("PAUSE"); return EXIT_SUCCESS; }GALERA já TO COM A CABEÇA PIRANDO... :) VLW e obrigado pela Atenção! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
mayconvm
Galera n estou conseguindo entender o que lista encadeada...
desenvolvi isso mais n funcionar...
algem pode me explicar ou me passar algo mais facil de entender... :)
Obrigado!
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.