Ir para conteúdo
Fórum Script Brasil

Pergunta

Boa noite! Minha primeira pergunta no fórum, vamos lá:

Preciso de uma ajuda para resolver este exercício, pois tento de tudo quanto é código e não imagino como resolve-lo:

 

"Considerando listas de valores inteiros, implemente uma função que receba como parâmetro uma lista encadeada e um valor inteiro n e divida a lista em duas, de tal forma que a segunda lista comece no primeiro nó logo após a primeira ocorrência de n na lista original.

Essa função deve obedecer ao protótipo: Lista*separa(Lista * l,int n);

A função deve retornar um ponteiro para a segunda subdivisão da lista original, enquanto l deve continuar apontando para o primeiro elemento da primeira subdivisão da lista."

 

Pfr me ajudem...

pfr alguém...

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

imagine que você tem uma lista com os valores:

lista->10->20->30->40->50->60->70->80->90-100->NULL

Dai você envia a essa função  a lista e o numero 50

Lista *novaLista = separa( lista, 50);

O que você deverá fazer nessa função é buscar o nó que contem o número 50 que é o nó desejado que recebeu por parâmetro. você devera fazer um laço utilizando um nóAtual para ir buscando o 50 nele, quando if (nóAtual->valor == n) que recebeu por valor você tem que fazer duas coisas.

1º é atribuir o nóAtual->seguinte a um ponteiro temporal tipo Lista:
Lista *temp = nóAtual->seguinte; //o atual é o 50 e o seguinte é o 60

Agora já temos a direção do segundo pedaço da lista, falta parti-la, para isso fazemos:
2º nóAtual->seguinte = NULL; //Nesse ponto a lista fica interrompida, você já tem 2 listas...

Agora só falta retornar a nova lista:
return temp;

Não sei se deu para entender.

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