Para implementação do TAD FILA por encadeamento, pode-se definir a seguinte estrutura de dados:
struct fila {
int tamanho;
nodo* inicio, fim;
};
typedef struct fila Fila;
Considerando que o nodo é definido por:
typedef struct nodo{
float elemento;
nodo* proximo;
};
Já a função que cria a FILA, pode ser definida por:
Fila* cria (){
Fila* f = (Fila) malloc (sizeof (Fila));
f->tamanho = 0;
f->inicio = NULL;
f->fim = NULL;
return(f);
}
E a função para incluir novos elementos na FILA é definida por:
void insere (Fila* f, float v){
nodo* anterior;
nodo* novo = (nodo) malloc (sizeof (nodo));
if (novo == NULL){ printf (“erro”); }
else {
novo -> elemento = v;
novo -> proximo = NULL;
f->tamanho = f->tamanho + 1;
if (f->inicio == NULL){
f->inicio = novo;
f->fim = novo;
}
else{
anterior = f->fim;
anterior->próximo = novo;
f->fim = novo;
}
}
}
Considere os trechos de código, acima, e analise as afirmativas:
I. inicio e fim são ponteiros
II. Fila é um tipo definido com a estrutura de fila
III. Ao fazer a criação de uma fila através da chamada X = cria(); X não ocupará espaço, pois será apenas um ponteiro vazio
IV. O tamanho somente é incrementado se a alocação do novo nodo é realizada com sucesso
V. f->inicio = novo, somente quando é adicionado o primeiro elemento na FILA
VI. Sempre é necessário varrer toda a FILA para definir onde será colocado o novo elemento
Somente é verdadeiro o que se afirma em:
I, II, III, IV, V e VI
I, III e VI
IV, V e VI
I, II e III
I, II, IV e V
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar