Pular para o conteúdo principal

Estrutura de Dados.


Pilha
• É uma lista linear em que todas as inserções, retiradas e, geralmente, todos os acessos são feitos em apenas um extremo da lista.

• Os itens são colocados um sobre o outro. O item inserido mais recentemente está no topo e o inserido menos recentemente no fundo.

• O modelo intuitivo é o de um monte de pratos em uma prateleira, sendo conveniente retirar ou adicionar pratos na parte superior.

• Esta imagem está freqüentemente associada com a teoria de autômato, na qual o topo de uma pilha é considerado como o receptáculo de uma cabeça de leitura/gravação que pode empilhar e
desempilhar itens da pilha.


• Propriedade: o último item inserido é o primeiro item que pode ser retirado da lista. São chamadas listas lifo (“last-in, first-out”).

• Existe uma ordem linear para pilhas, do “mais recente para o menos recente”.

• É ideal para estruturas aninhadas de profundidade imprevisível.

• Uma pilha contém uma seqüência de obrigações adiadas. A ordem de remoção garante que as estruturas mais internas serão processadas antes das mais externas.


• As pilhas ocorrem em estruturas de natureza recursiva (como árvores). Elas são utilizadas para implementar a recursividade.


• Conjunto de operações:
1. FPVazia(Pilha). Faz a pilha ficar vazia.
2. Vazia(Pilha). Retorna true se a pilha está vazia; caso contrário,
retorna false.
3. Empilha(x, Pilha). Insere o item x no topo da pilha.
4. Desempilha(Pilha, x). Retorna o item x no topo da pilha, retirando-o
da pilha.
5. Tamanho(Pilha). Esta função retorna o número de itens da pilha.


• As duas representações mais utilizadas são as implementações por meio de arranjos e de apontadores.



Fila
• É uma lista linear em que todas as inserções são realizadas em um extremo da lista, e todas as retiradas e, geralmente, os acessos são realizados no outro extremo da lista.

• O modelo intuitivo de uma fila é o de uma fila de espera em que as pessoas no início da fila são servidas primeiro e as pessoas que chegam entram no fim da fila.

• São chamadas listas fifo (“first-in”, “first-out”).

• Existe uma ordem linear para filas que é a “ordem de chegada”.

• São utilizadas quando desejamos processar itens de acordo com a ordem “primeiro-que-chega, primeiro-atendido”.

• Sistemas operacionais utilizam filas para regular a ordem na qual tarefas devem receber processamento e recursos devem ser alocados a processos.


• Conjunto de operações:
1. FFVazia(Fila). Faz a fila ficar vazia.
2. Enfileira(x, Fila). Insere o item x no final da fila.
3. Desenfileira(Fila, x). Retorna o item x no início da fila, retirando-o
da fila.
4. Vazia(Fila). Esta função retorna true se a fila está vazia; senão
retorna false.


• Os itens são armazenados em posições contíguas de memória.

• A operação Enfileira faz a parte de trás da fila expandir-se.

• A operação Desenfileira faz a parte da frente da fila contrair-se.

• A fila tende a caminhar pela memória do computador, ocupando espaço na parte de trás e descartando espaço na parte da frente.

• Com poucas inserções e retiradas, a fila vai ao encontro do limite do espaço da memória alocado para ela.

• Solução: imaginar o array como um círculo. A primeira posição segue a última.


• As duas representações mais utilizadas são as implementações por meio de arranjos e de apontadores.














Comentários

+ Vistas

Projeto de Algoritmos com implementações em Pascal e C.

Algoritmos de ordenação - Melhor, pior e medio caso. Baixe Aqui o livro - Projetos de algoritmos(Nivio Ziviani)

Exercícios Resolvidos C++ Lista 1

Por Ariadne Costa Gomes Algoritmos C++ Lista 1 1.      Resolva todos os exercícios de auto revisão do capítulo 1 do livro, página 92. 2.     Resolva os seguintes exercícios(pág. 94): 1.10, 1.11, 1.12, 1.13(desconsidere a letra c), 1.17, 1.18, 1.19, 1.20, 1.21, 1.22, 1.23, 1.24, 1.25, 1.26, 1.27, 1.30, 1.31, 1.32. Exercícios de auto-revisão 1.1 Preencha os espaços em branco em cada uma das seguintes frases: a) A empresa que popularizou a computação pessoal foi Apple. b) O computador que tornou a computação pessoal viável nos negócios e na indústria foi o IBM Personal Computer. c) Computadores processam dados sob o controle de conjuntos de instruções chamados de programas do computador. d) As seis unidades lógicas principais do computador são unidade de entrada, unidade de saída, unidade de memória, unidade aritmética e lógica, unidade central de processamento, unidade secundária de armazenamento e) As três classes de linguag...

Baixar Debian Lenny 6.0.7 Full + Updates

Debian  é simultaneamente o nome de uma distribuição não comercial livre (gratuita e de  código fonte aberto ) de  GNU / Linux (amplamente utilizada) e de um grupo de voluntários que o mantêm à volta do mundo. Uma vez que o Debian se baseia fortemente no projecto GNU, é usualmente chamado  Debian GNU/Linux . O Debian é especialmente conhecido pelo seu sistema de gestão de pacotes, chamado  APT , que permite: atualizações relativamente fáceis a partir de versões realmente antigas; instalações quase sem esforço de novos pacotes e remoções limpas dos pacotes antigos. Atualmente o Debian Stable se encontra na versão 7.0, codinome "Wheezy". O Debian Stable procura sempre manter os pacotes mais estáveis, assim, ele mantém o Gnome 3 e o KDE 4.4 por padrão. O fato dele conter pacotes mais antigos, garantindo a estabilidade, é o grande foco para servidores. O projecto Debian é mantido por doações através da organização sem fins lucrativos  Software in the Publi...