a) Uma empresa aérea quer fazer o controle de reservas de voos de forma automatizada. Há vários voos e cada um deles tem certo número de lugares disponíveis. Os usuários fazem a reserva por telefone, fornecendo seus nomes. As pilhas devem ser usadas para controlar a lista de passageiros de cada voo, ordenados pelo nome.
Passo 1
Vamos lá! A gente tem uma empresa aérea que quer automatizar o controle de reservas de voos. Cada voo tem um número limitado de lugares, e os clientes fazem reservas por telefone, dando seus nomes. A ideia é usar pilhas para controlar a lista de passageiros de cada voo, organizados pelo nome. Para resolver isso, vamos precisar entender como funcionam as pilhas e como podemos ordená-las.
Passo 2
Primeiro, vamos lembrar o que é uma pilha. Uma pilha é uma estrutura de dados que funciona no princípio LIFO, ou seja, o último a entrar é o primeiro a sair. Isso significa que os elementos são adicionados e removidos do topo da pilha.
Passo 3
Agora, precisamos controlar a lista de passageiros ordenados pelo nome. Como as pilhas não são naturalmente ordenadas, vamos precisar de uma estratégia para adicionar os nomes de forma ordenada. Uma maneira de fazer isso é inserir cada novo nome na posição correta dentro da pilha, mantendo a ordem alfabética.
Passo 4
Para inserir de forma ordenada, sempre que um novo nome for reservado, vamos comparar com os nomes já na pilha. Se o novo nome for “menor” alfabeticamente, ele deve ficar abaixo dos nomes “maiores”. Para fazer isso, podemos usar uma pilha auxiliar onde vamos temporariamente remover os nomes que são “maiores” que o novo nome, inserir o novo nome, e depois colocar de volta os nomes removidos.
Passo 5
Vamos resumir o processo:
- Receba o novo nome para reserva.
- Enquanto a pilha não estiver vazia e o nome no topo for maior que o novo nome:
- Remova o nome do topo e coloque na pilha auxiliar.
- Adicione o novo nome na pilha principal.
- Volte os nomes da pilha auxiliar para a pilha principal.
Passo 6
Dessa forma, garantimos que a pilha principal sempre tenha os nomes ordenados alfabeticamente, permitindo um controle eficiente das reservas e respeitando o limite de lugares disponíveis em cada voo.
Resposta
Com esse método, conseguimos manter a lista de passageiros de cada voo ordenada pelo nome utilizando pilhas, garantindo um controle automatizado e eficiente das reservas.
Exercícios relacionados
Sobre o algoritmo de pilha utilizando listas encadeadas, é incorreto afirmar que:
c) percorrer a lista tem complexidade .
c) percorrer a lista tem complexidade
Escreva um programa em Python que cria um dicionário a partir de uma string digitada. As chaves do dicionário devem ser as letras da string e os valores de tais chaves a quantidade de ocorrências das mesmas na palavra.
Sobre o algoritmo de pilha utilizando listas encadeadas, é incorreto afirmar que:
d) a inserção é sempre no início.
d) a inserção é sempre no início.
Com relação às estruturas de dados em listas, analise as afirmativas a seguir.
I. Em uma lista não ordenada, os elementos devem estar organizados em ordem decrescente das respectivas chaves.
II. Uma lista encadeada é uma estrutura de dados, na qual os objetos estão organizados em ordem linear.
III. Em uma lista duplamente encadeada, cada elemento deve apontar para o elemento anterior e para o próximo.
Está correto o que se afirma em:
e) I, II e III.
I. Em uma lista não ordenada, os elementos devem estar organizados em ordem decrescente das respectivas chaves.
II. Uma lista encadeada é uma estrutura de dados, na qual os objetos estão organizados em ordem linear.
III. Em uma lista duplamente encadeada, cada elemento deve apontar para o elemento anterior e para o próximo.
Está correto o que se afirma em:
e) I, II e III.