Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DarkEd

Procedimento em Fila encadeada

Recommended Posts

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.