Escolar Documentos
Profissional Documentos
Cultura Documentos
Estruturas de Dados
Pilhas
Pilhas
Lista LIFO (Last In, First Out) Os elementos so colocados na estrutura (pilha) e retirados em ordem inversa a de sua chegada Inser o apenas no topo da pilha
Pilhas
%erificar se a pilha est& va$ia 'olocar um dado no topo da pilha (empilhar) !etirar o dado do topo da pilha (desempilhar) Etc.
Pilhas
Implementa o de pilhas
(sando vetores
Pode)se implementar uma pilha de tamanho fi*o usando vetores. Este tamanho determinar& o n+mero m&*imo de elementos ,ue podero estar na pilha ao mesmo tempo - necess&rio um inteiro para arma$enar o valor da posi o do vetor aonde encontra)se o topo da pilha A implementa o de uma pilha ,ue usa como estrutura .&sica uma lista ligada / mais simples, pois a lista no / uma estrutura de tamanho fi*o 0asicamente, os dados devem ser colocados (empilhados) em alguma das e*tremidades da lista e retirados (desempilhados) a partir desta mesma e*tremidade
Pilhas
- ideal para processamento de estruturas aninhadas de profundidade imprevis"vel (ma pilha cont/m uma se,u1ncia de o.riga 2es adiadas. A ordem de remo o garante ,ue os dados mais internos sero processados depois dos mais e*ternos
3uando / necess&rio percorrer um con4unto de dados e guardar uma lista de coisas a fa$er posteriormente O controle de se,u1ncias de chamadas de su.programas A sinta*e de e*press2es aritm/ticas
Pilhas
Aplica 2es
'ontrole de delimitadores em uma e,ua o (rastrear escopo)# 5(A 6 0) 7 ' 6 (8 6 E)9:F 6 ;< 6 => 9 I Algoritmo# Percorrer a e,ua o da seguinte forma# ? @ se um iniciali$ador de escopo for encontrado, o mesmo / empilhado A @ se um finali$ar de escopo for encontrado, a pilha / verificada Be estiver va$ia, ento a e,ua o / incorreta Be no, desempilhar e comparar com o finali$ador Ao final, a pilha deve estar va$ia
Pilhas
Aplica 2es
Pilhas
Aplica 2es
3uanto / fatorial(D) E
Pilhas
Aplica 2es
Avalia o de e*press2es posfi*as (Fra.alho ?) Gota o infi*a (/ a usual)# (H 6 I) 7 A 6 J 7 H Os operadores .in&rios aparecem entre os operandos A ordem das opera 2es so determinadas pela preced1ncia dos operadores ou pelos par1nteses KK(KK KK)KK Gota o prefi*a (nota o polonesa)# 6 7 6 H I A 7 J H
Pilhas
Aplica 2es
Os componentes da e*presso so processados da es,uerda para a direita como a seguir# Be o prL*imo componente da e*presso / um operando, o valor do componente / colocado na pilha Be o prL*imo componente da e*presso / um operador, ento os seus operandos esto na pilha. O n+mero re,uerido de operandos / retirado da pilha, a opera o espec"fica / reali$ada, e o resultado / arma$enado de volta na pilha. Ao final, a pilha conter& um +nico dado ,ue / o valor final da e*presso
Estruturas de Dados
Filas
Filas
Lista FIFO (First In, First Out) Os elementos so colocados e retirados por ordem de chegada Inser o apenas no final da fila
Filas
(ma fila permite v&rias opera 2es 'riar uma fila va$ia
Inserir um novo item (no final) !emover um item (do in"cio) Esva$iar a fila Etc.
Filas
Implementa o de filas
(sando vetores
Pode)se implementar uma fila de tamanho fi*o usando vetores. Este tamanho determinar& o n+mero m&*imo de elementos ,ue podero estar na fila ao mesmo tempo - necess&rio dois inteiros para arma$enar o valor das posi 2es do vetor aonde se encontram o in"cio e o final da fila A implementa o de uma fila ,ue usa como estrutura .&sica uma lista ligada / mais simples, pois a lista no / uma estrutura de tamanho fi*o 0asicamente, os dados devem ser colocados (enfileirados) no final da lista e retirados (desenfileirados) do in"cio da lista.
Filas
Aplica 2es
As filas so utili$adas ,uando dese4amos processar itens de acordo com a ordem de chegada (o primeiro a chegar ser& o primeiro a ser processado). Bistemas operacionais, por e*emplo, usam filas para regular a ordem em ,ue as tarefas devem rece.er processamento e recursos devem ser alocados a processos. Fila de prioridade (inser o ordenada) Outras aplica 2es
Filas
Aplica 2es
(tili$ada na implementa o de percurso em largura em &rvores (m percurso em largura percorre (visita) os nLs da &rvore segundo a ordem de seus n"veis (ma maneira de implementar um percurso em largura de uma &rvore / atrav/s do uso de uma fila#
Para come ar o percurso, o nL rai$ / posto na fila ApLs, repetir os seguintes passos at/ ,ue a fila este4a va$ia# !etire e visite (percorra) o primeiro nL da fila 'olo,ue, da es,uerda para a direita, seus filhos na fila
Filas
A Bimule o algoritmo para a seguinte arvore#
'
Pilhas e Filas
E*erc"cio
8ada uma lista de caracteres formada por uma se,O1ncia alternada de letras e d"gitos, construa um m/todo ,ue retorne uma lista na ,ual as letras so mantidas na se,O1ncia original e os d"gitos so colocados na ordem inversa E*emplo# A ? E H F P Q R ;SA R E P F H Q ? ; T ' I = D 3 JSJ ' D = I 3 T Buponha a e*ist1ncia de um m/todo eh8igito(ch caractere) ,ue retorna true caso o caractere se4a um digito e false caso contr&rio.
Estruturas de Dados
Deques
Deques
Double-ended queue E*tenso de filas ,ue permite inserir e remover dados em am.as as e*tremidades
Deques
Inserir um novo item no in"cio Inserir um novo item no final !emover o item do in"cio !emover o item do final Esva$iar Etc.
Deques
A implementa o de de,ues tam./m poder ser por meio de vetores ou listas ligadas Ga implementa o atrav/s de listas ligadas, a utili$a o de uma lista duplamente encadeada torna a implementa o mais eficiente !emover o nL do final / mais eficiente em uma lista duplamente encadeada do ,ue em uma lista simplesmente encadeada