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

Ajuda ideia


Josefran

Pergunta

Galera é o seguinte tenho que fazer um trabalho da facu e a professora pediu para que implementasse uma função onde ela receberia uma lista "lista" e um valor inteiro "n", onde essa lista é encadeada dinamicamente de inteiros, e retorne duas listas onde a primeira é feita por todos os números menores que n e a segunda por todos os maiores.

Bem, alguém tem idéia de como faço para retornar duas listas? Duas estruturas listas? Só preciso da idéia, o resto eu desenrolo.

vlw

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

acho q o esquema seria você passar as duas listas por parametro. alias as tres, a original e as duas q tem q ser devolvidas. você passa na verdade um ponteiro pra cada uma das duas listas. assim, você alterando-a dentro da funcao, altera tb a original.

veja se entendeu e se consegue ai, qualquer coisa poste.

Link para o comentário
Compartilhar em outros sites

  • 0
a professora especificou que apenas uma lista deve ser passada e que duas devem ser devolvidas, como?

nossa, tem certeza q ela quer isso mesmo?? se for, é um trampo fudido, ce vai ter q declara a funcao como pontero e usar alocacao dinamica pra manter o endereco.

tipo, pelo menos é a forma q eu conheco, se tiver otro jeito foi mal, mas não sei não. e acho q seria muito mais facil da forma q eu falei antes. porque tipo, eu disse q você teria q passar tres parametos. mas entenda q só o da lista completa sera passado mesmo pra ser usado, os otros dois serao pasasdo pra serem RETORNADOS, entendeu??

então no fundo, apesar de você tar passando tres parametros, dois deles são pra retorno. ou seja, você vai estar devolvendo as duas listas nos parametros e é pra isso q elas servem.

mas ai tipo, não sei, o q o seu professor ensinou pra você?? ele já passou por alocacao dinamica, essas coisas??

bom, fiz aqui um exemplo de uma funcao q retornaria 2 interos baseado em ponterio e alocacao dinamica:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int *x (int c)
{
    int *y;
  
    y = NULL;
    y = (int *)malloc(sizeof(int) * 2);
    *y = c + 1;
    y += sizeof(int);
    *y = c + 2;
        
    return y - sizeof(int);
}

int main(void)
{
    int *a;
    a = x(2);
    
    int valor1, valor2;
    
    valor1 = *a;
    valor2 = *(a + sizeof(int));
    
    delete(a);
    
    printf ("%d\n", valor1);
    printf ("%d\n", valor2);
    
    getch();    
    
    return 0;
}[/code]

entenda q quero gravar nas variaveis valor1 e valor2, respectivamente o valor do parametro + 1 e + 2 q serao calculados dentro da funcao.

ai você teria q fazer mais ou menos isso com as listas, ve se entende ai, qualquer coisa poste.

mas ainda acho q o seu professor aceitaria sim aquela sugestao com 3 parametros q eu dei.

Link para o comentário
Compartilhar em outros sites

  • 0

Tem varias formas de fazer, vai depender do que voce decidir.

Como é lista não precisa de retorno, a não ser que queira retornar uma delas.

Voce pode receber tres listas por parametro.

Uma a original e duas vazias que serão preenchidas com os valores.

Percorra a lista original e compare a cada volta do loop o valor da lista com n, se menor insira na menor, se maior insira na maior.

Para inserir use uma função genérica que receba uma lista e um valor para efetuar a inclusão na lista.

Abraç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...