Ir para conteúdo
Fórum Script Brasil
  • 0

Lista Encadeada!


mayconvm

Pergunta

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!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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).

:)

Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...