DFPA46 Posted March 21, 2012 Report Share Posted March 21, 2012 Boas, gostaria que me ´´iluminassem´´ relativamente á seguinte função recursiva pois não consigo passar daqui. é uma lista e está a ser percorrida do inicio para o fim, mas quero que tbm leia do fim para o inicio. o codigo que tenho é o seguinte: struct t_listaPalavras { t_palavra *p; struct t_listaPalavras *prox; }; void recursiva(t_listaPalavras *lp) t_listaPalavras *aux; while(lp != NULL){ aux=lp->prox; recursiva(lp); lp=aux; } return; } Agradeço desde já a ajuda. DFPA46 Link to comment Share on other sites More sharing options...
KTachyon Posted March 21, 2012 Report Share Posted March 21, 2012 Estás a chamar a função recursiva sempre com o mesmo ponteiro. Seria suposto que enviasses o aux e não o lp para a próxima chamada recursiva. Para além disso tens um ciclo while numa função recursiva, que chama a função recursiva. Ou seja, não só estás a chamar a função recursiva infinitamente, como a estás a repetir várias vezes. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare Link to comment Share on other sites More sharing options...
pmg Posted March 21, 2012 Report Share Posted March 21, 2012 Nao podes ter uma lista simplesmente ligada (single-linked list), tens de ter uma lista duplamente ligada (double-linked list). Este artigo da Wikipedia (em ingles) pode-te ajudar. Basicamente cada elemento da lista, alem de apontar para o seguinte, aponta tambem para o anterior. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now