Exercicio:
Faça um programa que leia (via teclado) o nome e o sexo de várias pessoas. Se a pessoa for do sexo masculino, insira o seu nome em uma lista chamada MACHOS. Caso contrário, insira o nome numa lista chamada FEMEAS. Ambas as listas devem ser criadas e têm como tipo base o string. Escolha uma condição de parada para a entrada de dados a seu gosto. Ao final, devem ser exibidas as duas listas criadas.
Na pilha, o primeiro elemento que entra, é o último elemento a sair.
pilha.add(1);
pilha.add(2);
pilha.add(3);
pilha.remove(); //Remove o 3
pilha.remove(); //Remove o 2
pilha.remove(); //Remove o 1
Um exemplo de uso de pilha é o CTRL+Z. Você sempre retorna as operações na ordem inversa que as fez.
Na fila, o primeiro que entra é o primeiro a sair.
fila.add(1);
fila.add(2);
fila.add(3);
fila.remove(); //Remove o 1
fila.remove(); //Remove o 2
fila.remove(); //Remove o 3
Um exemplo de fila é uma fila de banco. A primeira pessoa que pegou uma senha, será a primeira a ser atendida.
Ambas são estruturas de dados lineares que oferecem operações de inserção e remoção (mas não necessariamente acesso direto a um elemento arbitrário).
Uma pilha (em inglês, stack) é uma estrutura análoga a uma pilha de pratos: tu podes inserir e remover pratos dela, mas somente o último prato inserido é acessível; para se acessar o prato mais debaixo, é necessário antes remover aqueles que foram inseridos acima dele em ordem inversa àquela em que foram empilhados.
Pilhas oferecem pelo menos as operações push(), para inserir um elemento; pop(), para retirar o último elemento inserido; e top(), para acessar este elemento, que se encontra no topo da pilha. Uma pilha segue um padrão LIFO, isto é, last in, first out -- o primeiro que entra é o último que sai.
Uma fila (em inglês, queue) é análoga à fila de um banco ou do RU de uma universidade: existem uma frente e um lado de trás, de modo que sempre a pessoa a ser atendida é aquela que se encontra na frente, e novas pessoas entram na fila pelo lado de trás -- lembrando que, ao contrário da fila de um RU, na estrutura de fila não é possível inserir elementos em posições arbitrárias. :)
Uma fila oferece pelo menos as operações enqueue(), que insere um elemento no lado de trás, e dequeue(), que acessa e retira o elemento à frente da fila. Uma fila segue um padrão FIFO, isto é, first in, first out -- o primeiro que entra é o primeiro que sai.
Fila tem sua definição baseada no First in – First out, ou seja, o primeiro elemento a sair da fila será o primeiro que entrou nela. Como analogia, pensamos numa fila de banco, por exemplo, onde o primeiro cliente a entrar na agência será o primeiro a ser atendido e mais rápido sairá da agência.
Pilha tem sua definição baseada no Last in – First Out, ou seja, o último elemento adicionado à pilha, será o primeiro a sair. Como analogia, pensamos numa pilha de pratos em um buffet, onde a pessoa a se servir pegará o prato do topo da pilha de pratos.
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar