Baixe o app para aproveitar ainda mais
Prévia do material em texto
22/03/2017 BDQ: Alunos http://simulado.estacio.br/alunos/ 1/5 Ao inserirmos em uma estrutura de dados do tipo fila sequencial os seguintes elementos: A, B, C, D, exatamente nesta ordem. E em seguida realizarmos duas operações consecutivas de remoção na fila e imediatamente inserirmos dois novos elementos o X e o W. Podedmos afirmar que se realizarmos uma nova operação de remoção, o elemento que será removido desta fila sera o: Podese citar os seguintes exemplos de aplicação da estrutura fila: Fila de arquivos para impressão: Atendimento de processos requisitados a um sistema operacional. Buffer para gravação de dados em mídia. O tratamento do armazenamento das teclas que estão sendo digitadas antes da tecla enter ser pressionada. Agora analise as seguintes afirmativas: I Uma fila guarda a ordem direta em que os elementos foram armazenados. II Uma fila guarda a ordem reversa em que os elementos foram armazenados. III O algoritmo que é implementado em uma fila é baseao no princípio: " O último a entrar é o primeiro a sair". IV O algoritmo que é implementado em uma fila é baseao no princípio: " O primeiro a entrar é o primeiro a sair". Marque a alternativa correta: Assinale a opção que, corretamente, mostra exemplos em que a estrutura de dados fila é usada, de acordo com o critério de inserções e remoções que rege tal estrutura. ESTRUTURA DE DADOS CCT0260_A7_201401083561_V2 Lupa Vídeo PPT MP3 Aluno: UBIRATAN MARTINS OLIVEIRA JUNIOR Matrícula: 201401083561 Disciplina: CCT0260 ESTRUT.DE DADOS Período Acad.: 2017.1 EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu EXERCÍCIO DE FIXAÇÃO! Lembrese que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha (3). Após a finalização do exercício, você terá acesso ao gabarito. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. D W X A C Gabarito Comentado Gabarito Comentado Gabarito Comentado 2. II e III estão corretas Apenas a IV está correta II e Iv estão corretas I e III estão corretas I e IV estão corretas Gabarito Comentado Gabarito Comentado Gabarito Comentado 3. 22/03/2017 BDQ: Alunos http://simulado.estacio.br/alunos/ 2/5 Marque a afirmativa que represente uma Lista Circular Simplesmente Encadeada: Considere uma fila simples F de inteiros, do 埦�po Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente desenfileira o código de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo. struct Fila { in t v[100], inicio, fim; } ; Fila F; F. inicio = 0; F.fim = ‐1; Fila de arquivos para impressão e buffer para gravação de dados em fila. Fila de arquivos para impressão e fila de pessoas no caixa de um supermercado. Buffer para gravação de dados em mídia e fila de pessoas para comprar o 埦�cket do metrô. Fila de pessoas para 埦�rar o visto e fila de pessoas para usar o caixa eletrônico. Fila de documentos para xerox e fila de arquivos para impressão. Gabarito Comentado 4. Cada ponteiro possui um só endereço que referencia o "primeiro" nó da lista. Além do campo relativo ao dado, cada nó possui dois ponteiros, O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista. O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "último" nó da lista, formando um ciclo. Cada nó possui um só ponteiro que referencia o próximo nó da lista. Gabarito Comentado 5. void desenfileirar(Fila &F) { if (F.fim == ‐1 && F.inicio == 0) cout << "Não há agentes para re埦�rar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; F.inicio++; } } void desenfileirar(Fila F) { cout << "Removido o agente " << F.v[F.inicio]; F.inicio‐‐; } 22/03/2017 BDQ: Alunos http://simulado.estacio.br/alunos/ 3/5 Usase um vetor para se implementar uma fila sequencial, entretanto se nesta estrutura ocorrer diversas operações de remoção e inserção podemos afirmar que: Considere uma fila simples F de inteiros, do 埦�po Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente enfileira o código de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo. struct Fila { in t v[100], inicio, fim; } ; void desenfileirar(Fila &F) { if (F.inicio > F.fim) cout << "Não há agentes para re埦�rar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; } } void desenfileirar(Fila F) { if (F.inicio > F.fim) cout << "Não há agentes para re埦�rar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; F.inicio++; } } void desenfileirar(Fila &F) { if (F.inicio > F.fim) cout << "Não há agentes para re埦�rar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; F.inicio++; } } Gabarito Comentado 6. Um vetor não pode ser usado na implementação de uma fila sequencial apenas em pilhas sequenciais. Um vetor é uma estrutura base correta para esta implementação, já que está imune a fenômenos como esgotamento de memória. A estrutra sofrerá do fenômeno chamado esgotamento de memória e logo não poderá mais ser utilizada. A solução é o uso da fila circular. A estrutura fila não sofre esgotamento de memória, isto ocorre com as pilhas já que implementam o algoritmo LIFO. A estrutra sofrerá do fenômeno esgotamento de memória, mas se os dados estiverem ordenados isto não afetará a estrutura. Gabarito Comentado 7. 22/03/2017 BDQ: Alunos http://simulado.estacio.br/alunos/ 4/5 Fila F; F. inicio = 0; F.fim = ‐1; void enfileirar(Fila &F, int codigo) { if (F.fim == 99) cout << "Não há espaço na firma para mais agentes. " << endl; else { F.fim++; F.v[F.fim] = codigo; } } void enfileirar(Fila &F, int codigo) { if (F.fim == 99) cout << "Não há espaço na firma para mais agentes. " << endl; else F.fim++; F.v[F.fim] = codigo; } void enfileirar(Fila &F, int codigo) { F.v[F.fim] = codigo; F.fim++; } void enfileirar(Fila F, int codigo) { if (F.fim == 100) cout << "Não há espaço na firma para mais agentes. " << endl; else { F.fim++; F.v[F.fim] = codigo; } } void enfileirar(Fila F, int codigo) { F.fim++; F.v[F.fim] = codigo; } 22/03/2017 BDQ: Alunos http://simulado.estacio.br/alunos/ 5/5 O que acontece quando se deseja inserir um elemento em uma FILA que já está cheia? Gabarito Comentado 8. Dequeue. Overflow. Underflow. A inserção é feita sem problema. Enqueue.
Compartilhar