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

O PVA NÃO FUNCIONA COM O JAVA 7 (RESOLVIDO)

Eu encontrei um problema na hora de instalar o PVA do Sped ICMS e SPED Contribuições, pois o java não executava a aplicação corretamente, ele apresentava um erro <JAVA HOME>. Mais eis a solução para o problema: Baixe o arquivo Jdk1.6.0_20   Download Jdk1.6.0_20   depois descompacte o mesmo e copie a pasta que foi gerada com a descompactação para a pasta java C:\Program Files (x86)\Java "isso windows 7 64bits" no XP é normal. Vualá, pode instalar os PVA's que vai funcionar que uma beleza. Espero que tenha ajudado.

Web server Apache + PHP 5 + MySQL no Debian Squeeze sem complicação

Nessa dica vou ensinar como montar um Web server com Apache, PHP5 e MySQL dentro do Debian Squeeze, mas sem aquelas complicações que a gente costuma encontrar.  Ao final dessa dica, se você já tem um site pronto, você poderá colocar ele funcionando pelo menos na sua rede intranet.   Instalação:   Entre como root no seu sistema:  $ su root  O primeiro pacote a ser instalado é o Apache:  # aptitude install apache2 apache2-doc   Após o Apache, você ativar o suporte ao PHP:  # aptitude install php5 libapache2-mod-php5 Agora terá que ativar o suporte ao MySQL do PHP:  # aptitude install php5-mysql   Configuração:  Para quem vai montar um web server pessoal, primeiro devemos ativar o módulo "userdir" do servidor apache2.  Para isso você apenas digita:  # a2enmod userdir  Depois reinicie seu apache:  # /etc/init.d/apache2 restart  Se você vai col...

Comandos Utilizados em Redes Linux

Configuração de endereço IPv4 fixo ifconfig eth0 192.168.1.1 netmask 255.255.255.0   (configura um ip manualmente) ifconfig eth0:1 192.168.1.1 netmask 255.255.255.0 (configura um alias, um segundo endereço ip) ifconfig eth0.1 192.168.1.1 netmask 255.255.255.0   (configura IP com dot1.q) ifconfig eth0 (verifica se a configuração foi realizada com sucesso) ifconfig eth0 down (desativa a placa de rede eth0) ifconfig eth0 up (ativa a placa de rede eth0) ifdown eth0 (desativa a placa de rede eth0) ifup eth0 (ativa a placa de rede eth0)   Configuração de gateway IPv4  fixo # route add default gw 192.168.10.10 (configura um gateway) # route (mostra se o gateway foi configurado) ou # route -n   Remove a rota default # route del default   Configurar uma rota para a rede 172.16.0.0/16 indo para o endereço 192.168.2.1 # route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.2.1   Verificar a tabela de rotas # r...