Revisão de Código: Estruturas de Dados e Algoritmos
Classificado em Design e Engenharia
Escrito em em
português com um tamanho de 1,3 KB
Exercício 1: Função para Inserir Elemento no Início de uma Fila (FuraFila)
Função recebe uma fila e um inteiro c, para ser inserido no início da fila, caso c já exista nela.
void FuraFila(Fila *f, int c){
Fila *faux = criaFila(); // Cria a fila auxiliar
celula *caux; // Célula auxiliar
int k = -1, t = 0;
while(!vazia(f)){
caux = desenfileira(f); // caux recebe a célula com o último elemento da fila f.
if(caux->conteudo != c)
enfileira(faux, caux->conteudo); // Enfileira o elemento na fila faux;
else{
k = caux->conteudo;
t = 1; // Para indicar que o elemento foi encontrado na fila.
}
}
if (t == 0)
printf("Elemento não encontrado na fila!\n");
else{
enfileira(f, k); // O elemento "fura a fila", pois agora é inserido no primeiro lugar da fila f.
}
while(!vazia(faux)){
caux = desenfileira(faux);
enfileira(f, caux->conteudo); // Volta os elementos para a fila original, porém com o elemento c no início da fila caso ele esteja na fila.
}
}