DarkEd 0 Denunciar post Postado Novembro 4, 2007 Pessoal preciso da ajuda de vcs para resolver um exercicio para a faculdade, e o seguinte: tem que escrever um procedimento que receba uma fila encadeada como parametro e retirar dessa fila todos os elementos repetidos. mas qui vem o problema: :( A fila não pode estar ordenada e nao pode se utilizar estrutura auxiliar. Mas como que eu percorro a fila e como eu comparo se é uma FILA http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Agradeço! Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Novembro 4, 2007 Para percorrer uma fila use uma variável da estrutura que voce criou "struct". Cada elemento da fila deve apontar para o proximo elemento. O último elemento apontará para NULL. Mas como que eu percorro a fila Na verdade todos elementos serão diferentes. Deve haver algum campo da estrutura a ser comparado, como um número, ou uma string. A comparação é exatamente igual a uma comparação sem o uso de uma estrutura. Poste ai sua estrutura que podemos ajudar mais. e como eu comparo se é uma FILA http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
DarkEd 0 Denunciar post Postado Novembro 4, 2007 Para percorrer uma fila use uma variável da estrutura que voce criou "struct". Cada elemento da fila deve apontar para o proximo elemento. O último elemento apontará para NULL. Mas como que eu percorro a fila Na verdade todos elementos serão diferentes. Deve haver algum campo da estrutura a ser comparado, como um número, ou uma string. A comparação é exatamente igual a uma comparação sem o uso de uma estrutura. Poste ai sua estrutura que podemos ajudar mais. e como eu comparo se é uma FILA http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Sim isso eu entendi, mas poderia me dizer como ficaria no codigo, isso que ta complicado, queria saber se você não poderia por o codigo? Agradeço Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Novembro 5, 2007 Amigo, não espere o código pronto. Não farei o código para voce, se alguém se dispor a resolver seu problema ótimo. Se quer testar alguma coisa de fila e lista encadeada, veja esse código: http://www.vivaolinux.com.br/scripts/verSc...php?codigo=1192 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Sim isso eu entendi, mas poderia me dizer como ficaria no codigo, isso que ta complicado, queria saber se você não poderia por o codigo? Compartilhar este post Link para o post Compartilhar em outros sites
Caidera 0 Denunciar post Postado Novembro 12, 2008 Não sei se ainda há a dúvida. Mas, uma lista simplesmente encadeada pode ser definida como uma struct dessa forma: typedef struct tnode { info *inf; struct tnode *next; }NODE; O campo *next, é o apontador para o próximo nó. Assim sendo, você precisa apenas fazer um loop para poder andar por toda a fila do tipo, digamos que head é o apontador para a cabeça da lista. NODE *p; p=head; while (p->next) p=p->next; E para verificar se a info do node é igual a outra e exclui-la sem usar uma função auxiliar, pode fazer isso em um loop um pouco maior. NODE *p, *q, *aux; p=head; for (p; p!=NULL; p=p->next) { q=p->next; for (q; q!=NULL; q=q->next) { if (p=q) { aux=q; p->next=q->next; free(aux); } } } Acho que está correto, não testei :P Abs Compartilhar este post Link para o post Compartilhar em outros sites