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

Me Ajudem!


nara

Pergunta

estou com problemas nesse programa na função eliminar que deve procurar um determinado no na lista,estou tentando fazer a procura por comparar a informação do determinado no com o restante da lista mas não ta muito certo o q eu fiz !!! me ajudem!!!

#include <iostream.h>

struct lat_long{

float lat;

float lon;

};

typedef lat_long elemento_lista;

struct no{

lat_long info;

no *link;

};

no* criarotavazia()

{

return NULL;

}

void ler(elemento_lista *v)

{

cout<<"lat?";cin>>v->lat;

cout<<"lon?";cin>>v->lon;

}

void inserir_inicio_lista (no ** p, elemento_lista v )

{

no * novo;

novo = new no;

novo->info = v;

novo->link = *p;

*p = novo;

}

void eliminar(no ** pri, elemento_lista * v)

{

no * s, *ant;

s = *pri;

while( s->link!=NULL && s->info !=*v)

{

ant = s;

s = s->link;

}

if(s == *pri)

*pri = s->link;

else

ant->link = s->link;

delete s;

}

void imprimir_lista(no* pri)

{

no*p;

p=pri;

while(p!= NULL)

{

cout<<p->info.lat;

cout<<p->info.lon;

p=p->link;

}

}

void main()

{

no*pri,p;

pri=criarotavazia();

elemento_lista v;

int pos;

int opc;

do{

cout<<"\n MENU\n";

cout<<"\n1- Inserir no inicio \n";

cout<<"\n2 - Listar \n";

cout<<"\n3- eliminar \n";

cout<<"\n0 - Sair \n";

cin>>opc;

switch(opc)

{

case 1:ler(&v);

inserir_inicio_lista(&pri,v);

break;

case 2:imprimir_lista(pri);

break;

case 3:ler(&v);

eliminar(&pri,&v);

break;

case 0:break;

default:cout<<" Numero invalido";

}

}while(opc!=0);

}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Opa!

Na hora de comparar os objetos do tipo "lat_long" (no while) deve-se comparar membro a membro:

void eliminar( no **pri, elemento_lista *v )
{
    no *s, *ant;

    s = *pri;
    
    while( s->link != NULL && s->info.lat != v->lat && s->info.lon != v->lon ) {
        ant = s;
        s = s->link;
    }

    if ( s == *pri )
        *pri = s->link;
    else 
        ant->link = s->link;

    delete s;
}

Até mais!

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...