alguem poderia me ajudar informando o que faz esse codigo?
(define (inverte-lista lis)
(if (null? (cdr lis)) ;se chegou no último elemento
(cons (car lis) aux)
(inverte-lista (cdr lis) (cons (car lis) aux))
)
)
alguem poderia me ajudar informando o que faz esse codigo?
(define (inverte-lista lis)
(if (null? (cdr lis)) ;se chegou no último elemento
(cons (car lis) aux)
(inverte-lista (cdr lis) (cons (car lis) aux))
)
)
Vish!
Será que eu lembro?
Já mexi com Lisp no mestrado.
Bem, Lisp, Scheme, e outras linguagens funcionais, trabalham com listas e seus componentes, chamados de átomos.
Vou tentar comentar seu código. Eu não conheço Scheme, então estou “googlando” para ver o que cada função faz (menos car e cdr que eu lembro ).
[code]// define uma função chamada lista, que recebe como parâmetro uma lista (lis)
(define (inverte-lista lis)
// cdr é uma função que extrai a cauda da lista, ou seja, a lista menos a cabeça (o primeiro átomo)
// este if então verifica se a cauda é vazia, ou seja, se já consumiu tudo até o último elemento
// de onde vc tirou esse código? acho que está errado aqui, nunca vai entrar no if se a lista tiver elementos...
(if (null? (cdr lis)) ;se chegou no último elemento
// insere o car da lista em aux
(cons (car lis) aux)
// chama recursivamente a função inverte lista, passando o cdr da lista e o car + aux como parâmetro.
// pq usou cons de novo????
(inverte-lista (cdr lis) (cons (car lis) aux))
)
) // fim da definição da função[/code]
Acho que esse código tem uns errinhos, não tem não?
na verdade preciso de um codgio que inverta recursivamente os elemento de uma lista encadeada. e depois de hora pensando nao encontrei a soluçao. ai procurei na net e encontrei esse codigo entao nao sei se ta certo ou errado entende.?
mas vc conseguiria me ajudar a inverter os elementos de uma lista encadeada simples recursivamente?
obrigado!
Mas é em Scheme?
pode ser em c java c++ qualqueer coisa do genero
Lição de casa???
Bem, se outra pessoa quiser ajudar, fique a vontade… Eu aqui baixando o Scheme p/ ajudar e só agora descubro que é lição de casa…
É o sono…