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

Exercícios Estrutura de Dados - Resolvidos

Lista de Exercícios Dê o conceito de: Algoritmo R: É uma sequencia de ações executáveis para obtenção de uma solução para um determinado problema. Tipo de dados R: Conjunto de valores a que uma constante pertence, ou podem ser assumidos por uma variável ou expressão a que podem ser gerados por uma função. Tipo abstrato de dados R: Pode ser visto como um modelo matemático, acompanhado das operações definidas sobre um modelo. Qual a descrição de algoritmos segundo Dijkstra? R: descreve como uma descrição de um padrão de comportamento, expresso em termos de um conjunto finito de ações. Descreva o conceito de programar para estrutura de dados. R: consiste em estruturar dados e construir algoritmos, sendo formulações concretas de algoritmos abstratos, baseados em representações e estruturas específicas de dados, representando uma classe especial de algoritmos capazes de serem seguidos por computadores Cite os tipos de ope...

Precificação, desafio ou simplicidade?

Nesse artigo, estaremos abordando alguns pontos importantes a serem considerados na rotina de precificar um produto ou serviço.  Vou descrever cada um deles a seguir: Passo 1: Calcular o Custo do Produto . O primeiro passo é calcular o custo do produto, que inclui todos os custos envolvidos na sua produção, como matéria-prima, mão de obra, energia elétrica, aluguel, etc. Esse cálculo deve resultar em um valor que represente o custo total por unidade do produto. Passo 2: Adicionar as Despesas. Além do custo de produção, é preciso adicionar as despesas fixas e variáveis da empresa, como impostos, comissões de vendas, transporte, marketing, entre outros. Esse cálculo resulta em um valor que representa o custo total por unidade do produto, incluindo as despesas. Passo 3: Definir a Margem de Lucro A margem de lucro é o valor que a empresa espera obter como lucro sobre cada unidade vendida. Ela pode variar de acordo com o mercado e a estratégia da empresa, mas geralmente é de...

Instalando o plugin Java 6.20 no Google Chrome

Instalando o plugin Java 6.20 no Google Chrome Faça o download do Java nesse link:  http://www.java.com/pt_BR/download/ Use o comando abaixo para criar a pasta chamada java (você pode instalar em outro diretório. Eu prefiro instalar nesse por uma questão de organização): # mkdir /opt/java Depois mova o arquivo  jre-6u20-linux-i586.bin  para esse diretório. # cp /diretorio_do_download/ jre-6u20-linux-i586.bin /opt/java Entre no diretório e execute os comandos abaixo: # cd /opt/java # chmod +x jre-6u20-linux-i586.bin # ./jre-6u20-linux-i586.bin Após esse processo o Java já estará instalado. Agora vamos instalar o Google Chrome. Baixe o arquivo de instalação do site:  http://www.google.com.br/chrome/eula.html?platform=linux_ubuntu_i386 Entre no terminal como root e digite: # dpkg -i google-chrome-stable_current_i386.deb O Google Chrome já esta instalado! Agora siga os seguintes passos para ativar o plugins do Java no Google Chrome: Criamos a pasta "plugins" no di...