Escolar Documentos
Profissional Documentos
Cultura Documentos
Estruturas de Dados
Sistemas de Informação
3º período
Aulas 16 e 17 – 24/05/2023
Prof. Anderson L. A. Vilaça
188
• Pilhas
• Filas
• Árvores
• Grafos
189
1
Algoritmos e Estruturas de Dados - AED
Implementação do Programa de Lista Encadeada Simples
190
191
2
Algoritmos e Estruturas de Dados - AED
Implementação do Programa de Lista Encadeada Simples
192
193
3
Algoritmos e Estruturas de Dados - AED
Implementação do Programa de Lista Encadeada Simples
194
195
4
Algoritmos e Estruturas de Dados - AED
Implementação do Programa de Lista Encadeada Simples
196
197
5
Algoritmos e Estruturas de Dados - AED
Implementação do Programa de Lista Encadeada Simples
198
199
6
Algoritmos e Estruturas de Dados - AED
Implementação do Programa de Lista Encadeada Simples
200
201
7
Algoritmos e Estruturas de Dados - AED
Implementação do Programa de Lista Encadeada Simples
202
203
8
Algoritmos e Estruturas de Dados - AED
Implementação do Programa de Lista Encadeada Simples
204
205
9
Algoritmos e Estruturas de Dados - AED
Implementação do Programa de Lista Encadeada Simples
206
• Pilhas são estruturas de dados do tipo last in, first out (LIFO), ou seja, o último
elemento a ser inserido na estrutura, será o primeiro a ser retirado da estrutura.
• Podemos fazer uma comparação com uma pilha de pratos, em que, se quisermos
adicionar um prato na pilha, devemos colocá-lo topo, e, para pegar um prato da
pilha, retiramos o do topo.
• Dessa forma, temos que retirar o prato do topo para ter acesso ao próximo prato.
• Portanto, essa manipulação é feita apenas por uma das extremidades da lista, pelo
topo.
207
10
Algoritmos e Estruturas de Dados - AED
Pilhas
208
209
11
Algoritmos e Estruturas de Dados - AED
Pilhas
• Para manipular os dados em uma pilha, você pode usar as seguintes operações:
• criação (pull);
• inserção (push) (Figura 2);
• remoção (pop) (Figura 2);
• acessa elemento (top)
210
211
12
Algoritmos e Estruturas de Dados - AED
Filas
• A pilha segue o critério last in first out (LIFO), ou seja, o último elemento a ser
inserido na estrutura será o primeiro a ser retirado da estrutura; já a fila segue o
critério FIFO, ou seja, o primeiro a ser inserido é o primeiro a ser retirado da
estrutura, como você pode observar na Figura 1.
212
• Podemos fazer uma comparação com uma fila de atendimento, em que a primeira
pessoa a entrar na fila, será a primeira pessoa a ser atendida e a sair da fila.
• As pessoas que chegarem para serem atendidas, serão posicionadas no final da fila.
Portanto, essa manipulação é feita apenas pelas duas extremidades da fila. Veja a
ilustração desse conceito na Figura 2.
213
13
Algoritmos e Estruturas de Dados - AED
Filas
• Podemos fazer uma comparação com uma fila de atendimento, em que a primeira
pessoa a entrar na fila, será a primeira pessoa a ser atendida e a sair da fila.
• As pessoas que chegarem para serem atendidas, serão posicionadas no final da fila.
Portanto, essa manipulação é feita apenas pelas duas extremidades da fila. Veja a
ilustração desse conceito na Figura 2.
214
• A fila pode ser representada por duas formas, como descrito a seguir:
• Estática: caracteriza-se por utilizar um vetor (estrutura estática) para
representar a fila.
• Dinâmica: caracteriza-se por utilizar uma lista encadeada (estrutura dinâmica)
para representar a fila.
215
14
Algoritmos e Estruturas de Dados - AED
Árvores
216
• O TAD árvore de busca binária permite várias operações de forma dinâmica como
inserção, remoção, busca, máximo e mínimo, além de algumas variações, por
exemplo, árvore rubro-negra (red-black tree), árvore B (B-tree), entre outras.
• O número de sub-árvores de um nó é
chamado de grau do nó e, na Figura 1,
você verá que o nó 1 possui grau 3.
217
15
Algoritmos e Estruturas de Dados - AED
Árvores
• O grau da árvore é o maior valor de grau de nó entre todos os seus nós, no caso do
exemplo, ela possui grau 3.
218
• Para que seja possível manter a ordenação nos nós de uma árvore binária, podem
ser utilizadas três estratégias.
16
Algoritmos e Estruturas de Dados - AED
Árvores
• Uma árvore binária completa possui todas as folhas no mesmo nível k e, mesmo
possuindo muitos nós, a distância entre a raiz e uma folha qualquer é
relativamente curta.
• Você verá, na Figura 3, um exemplo de árvore binária completa com três níveis de
profundidade e 15 nós.
220
221
17
Algoritmos e Estruturas de Dados - AED
Grafos
222
• Grafo é uma forma de representar relacionamentos que existem entre pares de objetos.
Grafo
representativo do
metro de Lisboa
223
18
Algoritmos e Estruturas de Dados - AED
Grafos
• A representação dos grafos está relacionada ao comportamento entre suas arestas e seus
vértices.
• Você irá notar que, geralmente, os vértices são visualmente representados por pontos, ou
círculos, e as arestas são representadas por retas, as quais têm como principal função fazer
a ligação entre os vértices.
• Mostramos um pouco desses conceitos logo acima, mas vamos observá-lo melhor na Figura
3.
224
225
19
Algoritmos e Estruturas de Dados - AED
Grafos
226
20