Estrutura de Dados e Algoritmos e Programao e

  • Slides: 16
Download presentation
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 6: Pilhas e

Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 6: Pilhas e Filas

Pilhas e Filas n n n Estruturas Heterogêneas Pilhas Filas

Pilhas e Filas n n n Estruturas Heterogêneas Pilhas Filas

Pilhas n n Uma pilha é uma estrutura de dados que pode ser acessada

Pilhas n n Uma pilha é uma estrutura de dados que pode ser acessada somente por uma de suas extremidades para armazenar e recuperar dados. Por essa razão, uma pilha é chamada de estrutura LIFO (last in/first out).

Pilhas n Operações sobre pilhas: n n n clear() – limpa a pilha; is.

Pilhas n Operações sobre pilhas: n n n clear() – limpa a pilha; is. Empty() – verifica se a pilha está vazia; push(elem) – coloca o elemento no topo da pilha; pop() – toma o elemento mais alto da pilha; top. El() – retorna o elemento mais alto da pilha sem removê-lo.

Pilhas push 10 push 5 pop push 15 push 7 pop 7 5 10

Pilhas push 10 push 5 pop push 15 push 7 pop 7 5 10 10 10 15 15 10 10

Pilhas n n Uma aplicação de pilhas é o casamento de delimitadores em um

Pilhas n n Uma aplicação de pilhas é o casamento de delimitadores em um programa. O casamento de delimitadores é parte importante de qualquer compilador. while (m < (n[8] + o)) { p = 7; /* inicializa p */ r = 6; }

Lê o caracter ch do arquivo file; while não é o fim de file

Lê o caracter ch do arquivo file; while não é o fim de file if ch é ´(´, ´[´ ou ´{´ push(ch); else if ch é ´)´, ´]´ ou ´}´ if ch e o caracter extraído não se casam falha; else if ch é ´/´ lê o próximo caracter; if este caracter é ´*´ pule todos os caracteres até encontrar o final do contrário “*”; indique um erro se o final for encontrado antes do “*”; // else ignore os outros caracteres; lê o próximo caracter ch a partir de file; if a pilha está vazia sucesso; else falha; };

Filas n n Uma fila é simplesmente uma linha de espera que cresce somando

Filas n n Uma fila é simplesmente uma linha de espera que cresce somando elementos ao seu final e que diminui tomando elementos de sua frente. Em uma extremidade os nós são somente adicionados, e na outra os nós são somente removidos.

Filas n Operações n n n clear() – limpa a fila; is. Empty() –

Filas n Operações n n n clear() – limpa a fila; is. Empty() – verifica se a fila está vazia; is. Full() – verifica se a fila está cheia; enqueue(elem) – toma o elemento no final da fila; dequeue() – toma o primeiro elemento da fila; first. El() – retorna o primeiro elemento da fila sem removê-lo.

Filas enqueue 10 enqueue 5 dequeue enqueue 15 enqueue 7 dequeue 7 5 10

Filas enqueue 10 enqueue 5 dequeue enqueue 15 enqueue 7 dequeue 7 5 10 10 5 15 15 5 5

Filas n n As filas são frequentemente usadas em simulações, uma vez que existe

Filas n n As filas são frequentemente usadas em simulações, uma vez que existe uma teoria das filas bem desenvolvida e matematicamente sofisticada na qual vários cenários são analisados e modelos que usam filas são construídos. Exemplos: clientes em filas de espera, peças em filas de montagem, conteiners em portos, sistemas de trânsito de grandes cidades, dentre outros.

Estudo de Caso n n n Uma Biblioteca: incluir novos livros, registrar saída de

Estudo de Caso n n n Uma Biblioteca: incluir novos livros, registrar saída de livros pelas pessoas e retorná-los. Neste estudo de caso quase tudo é implementado em termos de listas. Ainda mais, ele usa listas de listas que também contêm referências cruzadas.

catálogo A B F Fielding Pasquin The Hist. . NULL Fitzgerald Select Euph. .

catálogo A B F Fielding Pasquin The Hist. . NULL Fitzgerald Select Euph. . NULL pessoas A B C Charles NULL

Estudo de Caso n n n O problema usa um vetor catalogo de todos

Estudo de Caso n n n O problema usa um vetor catalogo de todos os autores de livros incluídos na biblioteca e um vetor pessoas de todas as pessoas que usaram a biblioteca pelo menos uma vez. Os vetores são indexados por letras de modo que uma posição refere-se a lista de nomes com a letra correspondente. Pode-se ter diversos livros de um mesmo autor, e por isso um dos membros do nó autor aponta para uma lista de livros escritos.

Estudo de Caso n n n Da mesma forma, uma pessoa pode retirar diversos

Estudo de Caso n n n Da mesma forma, uma pessoa pode retirar diversos livros, e assim o nó desta pessoa possui um membro que aponta para a lista de livros retirados. Este fato também é indicado ajustando-se o membro do nó livro para o nó da pessoa que o retirou. O problema possui 4 classes: Autor, Livro, Pessoa e Livro. Retirado.

Estudo de Caso n 5 operações possíveis no Estudo de Caso: n n n

Estudo de Caso n 5 operações possíveis no Estudo de Caso: n n n Incluir um livro; Registrar a saída de um livro; Retornar um livro; Mostrar uma listagem dos livros da biblioteca; Sair do programa.