Paradigmas de Programação

Tamanho: px
Começar a partir da página:

Download "Paradigmas de Programação"

Transcrição

1 Tipos Abstractos de Dados (ADT) Estruturas construídas para armazenar determinados tipos de dados e que especificam operações que permitem a manipulação desses dados. Estudaremos duas das mais simples que se encontram entre as estruturas mais importantes: Pilha (stack) Fila (queue) Veremos a definição destas ADTs de uma forma geral e daremos duas alternativas para implementação : Array e Lista Ligada Tópicos das aulas Teórico Práticas 1

2 PILHA (STACK): Contentor de objectos em que o processo de inserção e remoção de elementos é feito de acordo com o princípio last-infirst-out (LIFO) Em qualquer ocasião pode ser inserido um novo objecto e será colocado na estrutura de modo que quando for necessário retirar um elemento, sairá o último que foi inserido. (Analogia: pilha de pratos) Aplicações: Armazenamento dos endereços visitados num navegador web Mecanismo undo dos editores de texto Recursividade Tópicos das aulas Teórico Práticas 2

3 PILHA (STACK): Operações : push(obj) - Inserir objecto obj no topo da pilha pop() - Remover objecto do topo da pilha top() - Consultar objecto do topo da pilha (sem o remover) isempty() - Verificar se a pilha está vazia size() - Devolve o número de objectos na pilha Nota: a pilha só tem um acesso, quer para remover objectos quer para inserir objectos. Tópicos das aulas Teórico Práticas 3

4 PILHA --- Implementação em Java usando arrays Tópicos das aulas Teórico Práticas 4

5 PILHA --- Implementação em Java usando arrays public class StackArray { private static final int CAPACIDADE=1000; //dimensão do array por omissão private int capacidade; private int tamactual=-1; private Object contentor[]; public StackArray() { this(capacidade); public StackArray(int capac) { capacidade=capac; contentor=new Object[capacidade]; Tópicos das aulas Teórico Práticas 5

6 public int size() { return tamactual+1; public boolean isempty() { return tamactual<0; public Object top() throws EmptyException { if(isempty()) return null; else return contentor[tamactual]; Tópicos das aulas Teórico Práticas 6

7 public void push(object obj) throws FullException { if(size()==capacidade) throw new FullException("Stack completa"); else { tamactual++; contentor[tamactual]=obj; public Object pop() throws EmptyException { if(isempty()) return null; else { Object obj=contentor[tamactual]; contentor[tamactual]=null; tamactual--; return obj; Tópicos das aulas Teórico Práticas 7

8 O método push() lança a excepção FullException (quando o array de implementação da stack ultrapassa a capacidade máxima) Exception Como a classe da excepção é subclasse de Exception, sempre que utilizarmos o métodos push() teremos que o fazer dentro de um bloco try...catch Código da classe FullException: FullException public class FullException extends Exception { public FullException(String erro) { super(erro); Tópicos das aulas Teórico Práticas 8

9 FILA (QUEUE): Contentor de objectos em que o processo de inserção e remoção de elementos é feito de acordo com o princípio first-infirst-out (FIFO) Em qualquer ocasião pode ser inserido um novo objecto e será colocado na estrutura (fim da fila) de modo que quando for necessário retirar um elemento, sairá o primeiro que foi inserido, que se encontra no início da fila. (Analogia: fila para entrada no autocarro) Aplicações: Processamento de informação em que a ordem obedeça ao princípio FIFO (Simulações ). Tópicos das aulas Teórico Práticas 9

10 FILA (cont) Operações : enqueue(obj) - Inserir objecto obj no fim da fila dequeue() - Remover objecto do início da fila front() - Consultar objecto do início da fila (sem o remover) isempty() - Verificar se a fila está vazia size() - Devolve o número de objectos na fila Nota: a fila tem dois acessos,início para remover objectos e fim para inserir objectos. Tópicos das aulas Teórico Práticas 10

11 FILA (cont) Tópicos das aulas Teórico Práticas 11

12 FILA implementação em Java usando arrays public class QueueArray { private static final int CAPACIDADE=1000;// private int capacidade; private int tamactual=-1; private Object contentor[]; public QueueArray() { this(capacidade); public QueueArray(int capac) { capacidade=capac; contentor=new Object[capacidade]; Tópicos das aulas Teórico Práticas 12

13 FILA implementação em Java usando arrays public int tamanho() { return tamactual+1; public boolean isempty() { return tamactual<0; public Object topo() { if(isempty()) return null; else return contentor[tamactual]; Tópicos das aulas Teórico Práticas 13

14 FILA implementação em Java usando arrays //junta objecto no fim da queue public void enqueue(object obj) throws QueueFullException { if(tamanho()==capacidade) throw new QueueFullException("Queue completa"); else { tamactual++; contentor[tamactual]=obj; Tópicos das aulas Teórico Práticas 14

15 FILA implementação em Java usando arrays //retira objecto do inicio da queue public Object dequeue(){ if(isempty()) return null; else { Object obj=contentor[0]; for(int i=0;i<tamactual-1;i++) { //faz shift para a esquerda dos elementos do array contentor[i]=contentor[i+1]; contentor[tamactual]=null; tamactual--; return obj; Tópicos das aulas Teórico Práticas 15

16 LISTA SIMPLESMENTE LIGADA Vimos como implementar os tipos abstractos de dados, pilha e fila, usando arrays. Vantagem desta implementação: Desvantagem Simplicidade Pouco dinâmica, é necessário fixar o número máximo de elementos que a estrutura pode comportar. Para colmatar esta desvantagem vamos usar uma implementação alternativa lista simplesmente ligada Tópicos das aulas Teórico Práticas 16

17 LISTA SIMPLESMENTE LIGADA Lista simplesmente ligada é uma colecção de nós. Cada nó é um objecto composto por dois campos 1. elemento -- conteúdo da lista 2. prox -- referência para o próximo nó da lista A lista encadeia os nós, alocados em endereços de memória não consecutivos, e o campo referência para o próximo nó permite a ligação com o nó seguinte, até que o último nó tem o valor null. O acesso aos elementos da lista é feito através de uma referência para o primeiro nó designado por cabeça. Seguindo a referência prox, encadeamos os diferentes nós. Tópicos das aulas Teórico Práticas 17

18 LISTA SIMPLESMENTE LIGADA (cont) Tópicos das aulas Teórico Práticas 18

19 LISTA SIMPLESMENTE LIGADA (cont) Tópicos das aulas Teórico Práticas 19

20 Classe NO ---- usada na implementação de estruturas através de lista ligada public class No { private Object elemento; private No prox; //referência para o nó seguinte //Construtores public No() { this(null,null); public No(Object o,no n) { elemento=o; prox=n; Tópicos das aulas Teórico Práticas 20

21 Classe NO ---- usada na implementação da stack através de lista ligada (cont) public void setelemento(object novo) { elemento=novo; public void setprox(no novo) { prox=novo; public Object getelemento() { return elemento; public No getprox() { return prox; Tópicos das aulas Teórico Práticas 21

22 Pilha ---- implementação em Java usando lista ligada Nesta implementação há necessidade de considerar um atributo designado por head (cabeça) que é uma referência para o nó de acesso à estrutura pilha. Tópicos das aulas Teórico Práticas 22

23 Pilha ---- implementação em Java usando lista ligada Tópicos das aulas Teórico Práticas 23

24 Pilha ---- implementação em Java usando lista ligada public class StackLista { private No cabeca; //referência para o nó de acesso à stack private int tamanho; //nº de elementos da stack //construtor public StackLista() { cabeca=null; tamanho=0; public int size() { return tamanho; //verifica se a stack está vazia public boolean isempty() { if(cabeca==null) return true; else return false; Tópicos das aulas Teórico Práticas 24

25 Pilha ---- implementação em Java usando lista ligada (cont) //junta elemento à stack public void push(object obj) { No n=new No(); n.setelemento(obj); n.setprox(cabeca); cabeca=n; tamanho++; //retira elemento da stack public Object pop() { Object obj; if(isempty()) return null; else { obj=cabeca.getelemento(); cabeca=cabeca.getprox(); tamanho--; return obj; Tópicos das aulas Teórico Práticas 25

26 Pilha ---- implementação em Java usando lista ligada (cont) //consulta o elemento de topo da stack public Object topo() { if(isempty()) return null; else return cabeca.getelemento(); Tópicos das aulas Teórico Práticas 26

27 Fila ---- implementação em Java usando lista ligada Nesta implementação há necessidade de considerar dois atributos designados por front (início) e back (fim). São referências para os acessos aos nós nas extremidades da lista usados nas operações de eliminação e inserção. Tópicos das aulas Teórico Práticas 27

28 Fila ---- implementação em Java usando lista ligada Tópicos das aulas Teórico Práticas 28

29 Fila ---- implementação em Java usando lista ligada public class QueueLista { private No inicio; private No fim; private int tamanho; //referência para o nó início da fila //referência para o nó fim da fila public QueueLista() { inicio = fim = null; tamanho = 0; public int size() { return tamanho; Tópicos das aulas Teórico Práticas 29

30 Fila ---- implementação em Java usando lista ligada (cont) public boolean isempty() { return inicio==null; //junta elemento no fim da queue public void enqueue(object obj) { No n = new No(); if (isempty()) { inicio = fim = n; else { fim.setprox(n); fim = n; n.setelemento(obj); tamanho++; Tópicos das aulas Teórico Práticas 30

31 Fila ---- implementação em Java usando lista ligada (cont) //remove elemento do inicio da queue public Object dequeue() { Object obj; if (isempty()) { return null; else { obj = inicio.getelemento(); inicio = inicio.getprox(); //actualiza a referência para o fim da fila caso esta fique vazia if (inicio == null) { fim = null; tamanho--; return obj; Tópicos das aulas Teórico Práticas 31

32 Exercício: Construa uma classe de teste para cada uma das estruturas de dados estudadas usando objectos do tipo Ponto. Tópicos das aulas Teórico Práticas 32

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

CES-11. Pilhas Definição Operações Filas. Operações Deques. Definição. Operações

CES-11. Pilhas Definição Operações Filas. Operações Deques. Definição. Operações CES-11 Pilhas Definição Operações Filas Definição Operações Deques Definição Operações PILHAS, FILAS E DEQUES As listas lineares admitem inserção e eliminação em qualquer posição. Pilhas, filas e deques

Leia mais

Tipos de Dados Abstratos

Tipos de Dados Abstratos Tipos de Dados Abstratos Algoritmos e Estruturas de Dados Verão 2012 1 Tipos Abstratos Um tipo abstrato é: um tipo genérico de dados, dos quais não se conhece os valores uma interface que define os acessos

Leia mais

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore

Leia mais

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais

Leia mais

Estruturas de Dados Encadeadas

Estruturas de Dados Encadeadas CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos

Leia mais

Tipos Abstractos de Dados (TADs) e Java

Tipos Abstractos de Dados (TADs) e Java Tipos Abstractos de Dados (TADs) e Java Neste capítulo apresentamos a metodologia de desenvolvimento dos TADs em Java, introduzimos o conceito de estrutura linear e sua implementação utilizando a estrutura

Leia mais

Filas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing,

Filas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing, Filas Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing, pelo uso da CPU Algoritmos e Estruturas de Dados I José

Leia mais

FILAS. As coisas de que uma fila é feita serão chamadas itens. Os itens podem ser números, strings, structs, etc., etc.

FILAS. As coisas de que uma fila é feita serão chamadas itens. Os itens podem ser números, strings, structs, etc., etc. KATIA LIMA FILAS RAFAEL DA SILVA REIAS JEFFERSON DA SILVA OLIVEIRA RAFFAELA LEITE SANTANA EXISTEM MUITOS EXEMPLOS DE FILA NO MUNDO REAL: UMA FILA DE BANCO; NO PONTO DE ÔNIBUS; UM GRUPO DE CARROS AGUARDANDO

Leia mais

Orientação a Objetos AULA 09

Orientação a Objetos AULA 09 Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA (ABORDAGEM RECURSIVA)

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA (ABORDAGEM RECURSIVA) ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA (ABORDAGEM RECURSIVA) Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande QUESTÕES DE IMPLEMENTAÇÃO Implementacao

Leia mais

S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas

S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas ESTRUTURA DE DADOS DEBORAH FERREIRA S U M Á R I O Definição de Estrutura de Dados 1 Vetores 2 Listas Ligadas 4 Pilhas 6 Filas 8 D E F I N I Ç Ã O D E E S T R U T U R A D E D A D O S Estruturas de dados

Leia mais

Pilhas. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

Pilhas. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP Pilhas Algoritmos e Estruturas de Dados I Nesta aula veremos o ADT pilha Uma pilha é usada em muitas situações tais como avaliação de expressões aritméticas, chamada e retorno de procedimentos e funções

Leia mais

Estruturas de Dados Filas

Estruturas de Dados Filas Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados

Leia mais

Estrutura de dados - Listas Encadeadas

Estrutura de dados - Listas Encadeadas Estrutura de dados - Listas Encadeadas Prof. Leonardo Cabral da Rocha Soares [email protected] Centro Universitário Newton Paiva 25 de abril de 2019 Estrutura de dados - Listas Encadeadas

Leia mais

Aula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler

Aula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler Aula 7 e 8 Filas e suas Aplicações Prof. Leticia Winkler 1 Definição de Fila (Queue) São estruturas de dados do tipo FIFO (first-in first-out) - o primeiro elemento a ser inserido, será o primeiro a ser

Leia mais

Estruturas Compostas Parte II

Estruturas Compostas Parte II Estruturas Compostas Parte II Filas e Pilhas Leonardo Tórtoro Pereira Slides fortemente baseados no material do professor Ricardo Farias: http://www.cos.ufrj.br/~rfarias/cos121/ Pilhas Pilhas Também conhecida

Leia mais

Estrutura de Dados Listas

Estrutura de Dados Listas Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan [email protected] Conteúdos Abordados O Conceito de Listas Listas com Representação

Leia mais

Paradigmas da Programação PPROG. Linguagem JAVA. Contentores de Objetos

Paradigmas da Programação PPROG. Linguagem JAVA. Contentores de Objetos PPROG Paradigmas da Programação Linguagem JAVA Contentores de Objetos Nelson Freire (ISEP DEI-PPROG 2012/13) 1/33 Contentores Sumário Noção de Contentor Categorias de Contentores Conjunto Lista Fila de

Leia mais

REVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

REVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE PILHAS E FILAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos PILHAS E FILAS São tipos especiais de listas com disciplina restrita de acesso Acesso Consulta Inserção Remoção Disciplina

Leia mais

Listas Lineares Ordenadas

Listas Lineares Ordenadas Listas Lineares Ordenadas Algoritmos e Estruturas de Dados I Nesta apresentação será apresentado o ADT lista linear ordenada Uma lista linear ordenada, ou simplesmente lista ordenada há uma ordem entre

Leia mais

4. Listas, Pilhas, e Filas

4. Listas, Pilhas, e Filas 4. Listas, Pilhas, e Filas Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 4. Listas, Pilhas, e Filas Estruturas de Dados 1 / 49 Definição de Lista (1) Uma lista é uma sequência finita

Leia mais

4. Listas, Pilhas, e Filas

4. Listas, Pilhas, e Filas 4. Listas, Pilhas, e Filas Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 4. Listas, Pilhas, e Filas Estruturas de Dados 1 / 49 Definição de Lista (1) Uma lista é uma sequência finita

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção

Leia mais

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha.

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha. 1 Estrutura de Dados II Pilha e Fila Pilha em C Definir o registro que representará cada elemento da pilha. No início a pilha estará vazia, logo o ponteiro topo tem o valor NULL. As operações de inserção

Leia mais

Estrutura de Dados: Pilhas. Unidade I:

Estrutura de Dados: Pilhas. Unidade I: Estrutura de Dados: Pilhas Unidade I: 0 Unidade: Pilhas 1 Pilhas Já conhecemos na Unidade anterior as Listas Lineares, cujo princípio fundamental é o de ordenar unidimensionalmente seus elementos. Dependendo

Leia mais

Exercício de Estrutura de dados. Java Fila

Exercício de Estrutura de dados. Java Fila Exercício de Estrutura de dados Java Fila Obs.: Esse projeto foi um exercício realizado em sala de aula da matéria de Estrutura de dados com o Profº Frederico Augusto Siqueira Gentil Aqui está sendo relatado

Leia mais

Filas. Prof. Túlio Toffolo BCC202 Aula 12 Algoritmos e Estruturas de Dados I

Filas. Prof. Túlio Toffolo  BCC202 Aula 12 Algoritmos e Estruturas de Dados I Filas Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 12 Algoritmos e Estruturas de Dados I O que é uma fila? 1 4 2 3 Fila 1 2 3 4 TAD Fila Tipo Abstrato de dados com a seguinte característica:

Leia mais

Prova 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins

Prova 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins Prova 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço. Os códigos fornecidos na seção Códigos-fonte de apoio podem ser referenciados

Leia mais

Aula 11 Pilha Dinâmica. prof Leticia Winkler

Aula 11 Pilha Dinâmica. prof Leticia Winkler Aula 11 Pilha Dinâmica prof Leticia Winkler 1 Pilha Dinâmica (Dynamic Stack) Pilha implementada através de uma lista linear encadeada. É uma lista linear encadeada em que as operações de inserção e retirada

Leia mais

Pilhas Filas e Listas

Pilhas Filas e Listas Pilhas Filas e Listas Sumário Pilha: interface, aplicações e implementação Fila: interface, aplicações e implementação Lista Ligada: interface, aplicações e implementação Pilha Estrutura LIFO (last in,

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2

Leia mais

4 Conceito de Herança

4 Conceito de Herança 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Estruturas de Dados Pilhas, Filas, Listas

Estruturas de Dados Pilhas, Filas, Listas PMR2300 Escola Politécnica da Universidade de São Paulo Introdução Estruturas de dados são objetos que armazenam dados de forma eficiente, oferecendo certos serviços para o usuário (ordenação eficiente

Leia mais

Pilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode

Pilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode Pilhas e Filas Pilhas Uma pilha é uma estrutura linear de dados que pode ser acessada somente por uma de suas extremidades. Uma pilha é uma lista LIFO (do inglês last-in-first out) o último a entrar é

Leia mais

ESTRUTURA DE DADOS (TCC )

ESTRUTURA DE DADOS (TCC ) ESTRUTURA DE DADOS (TCC-00.319) Listas lineares Pilhas e Filas Cristina Boeres 2 Manipulando listas lineares! Dependendo do problema a ser resolvidos, existem duas formas especiais (que veremos aqui no

Leia mais

Árvores. Estruturas de Dados. Prof. Vilson Heck Junior

Árvores. Estruturas de Dados. Prof. Vilson Heck Junior Árvores Estruturas de Dados Prof. Vilson Heck Junior Árvores INTRODUÇÃO Introdução Árvores são estruturas de dados utilizadas para armazenar e recuperar dados de forma rápida e eficiente; Árvores não são

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande LISTA LIGADA (LINKED LIST) É uma estrutura de dados em que

Leia mais

2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas 7. Pilhas 8.

2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas 7. Pilhas 8. Profa. Dra. Laura Rodríguez E-mail: [email protected] Universidade da Madeira 1. Introdução 2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas

Leia mais

Estruturas de Dados Aula 11: TAD Pilha

Estruturas de Dados Aula 11: TAD Pilha Estruturas de Dados Aula 11: TAD Pilha Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 10; Estruturas

Leia mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação

Leia mais

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I Aplicações de listas e outras estruturas SCC-52 Algoritmos e Estruturas de Dados I Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long int) são limitados Como somar números

Leia mais

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita Listas lineares especiais s Acesso consulta inserção remoção Disciplina restrita de acesso Disciplina restrita acesso permitido somente em alguns nós Listas lineares especiais mais usuais LIFO Last In

Leia mais

Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados I Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin ([email protected]) Aula 8 Aplicação de Fila Calcular a distância entre pessoas no Facebook Aplicação de Fila Calcular a distância entre

Leia mais

Filas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010

Filas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010 Filas de prioridade Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010 Qual a Utilidade das Filas de Prioridade? Trabalhos maiores devem ser executados no fim (mesmo que não tenha sido o último

Leia mais

Algoritmos e Estruturas de Dados. Lição n.º 3 Coleções: sacos, pilhas e filas

Algoritmos e Estruturas de Dados. Lição n.º 3 Coleções: sacos, pilhas e filas Algoritmos e Estruturas de Dados Lição n.º 3 Coleções: sacos, pilhas e filas Coleções: sacos, pilhas e filas Especificação das coleções Classes iteráveis Sacos (em inglês bags) Implementação com arrays

Leia mais

Estruturas de Dados I

Estruturas de Dados I Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi [email protected] 3410-2075 Aula 6: Listas Encadeadas e Alocação Dinâmica Listas Encadeadas e Alocação Dinâmica Alocação Seqüencial versus

Leia mais

Tabelas de Dispersão. Tabela de Dispersão

Tabelas de Dispersão. Tabela de Dispersão Tabelas de Dispersão Sumário Definição. Características. Resolução de colisões: dispersão aberta e dispersão fechada. Teste quadrático. Desempenho de tabelas de dispersão. Interface de tabela de dispersão.

Leia mais

Estruturas de Dados Pilhas, Filas, Listas

Estruturas de Dados Pilhas, Filas, Listas Estruturas de Dados Pilhas, Filas, Listas Fabio Gagliardi Cozman Thiago Martins PMR3201 Escola Politécnica da Universidade de São Paulo Estruturas de Dados Pilhas, Filas, Listas Introdução Estruturas de

Leia mais

Estruturas de Dados Básicas

Estruturas de Dados Básicas Projeto de Algoritmos Cap.3 Estruturas de Dados Básicas Seção 3.1 1 Listas Lineares Uma das formas mais simples de interligar os elementos de um conjunto. Estruturas de Dados Básicas Estrutura em que as

Leia mais

AULA 12 ESTRUTURA DE DADOS

AULA 12 ESTRUTURA DE DADOS AULA 12 ESTRUTURA DE DADOS Fila (implementação dinâmica) Norton T. Roman & Luciano A. Digiampietri Fila É uma estrutura linear na qual: - As inserções ocorrem no final da fila; - As exclusões ocorrem no

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Algoritmos e Estruturas de Dados I Nesta aula será apresentado o ADT árvore binária de busca, também conhecidas como dicionários binários Uma árvore binária de busca é uma estrutura

Leia mais

Fila. Algoritmos e Estruturas de Dados I

Fila. Algoritmos e Estruturas de Dados I Fila Algoritmos e Estruturas de Dados I Fila O que é? Para que serve? 2 Biblioteca Problema: automação de uma biblioteca Todos os livros devem ser cadastrados O sistema deve informar se um livro está disponível

Leia mais

Aula 5 e 6 Pilhas e suas Aplicações. prof Leticia Winkler

Aula 5 e 6 Pilhas e suas Aplicações. prof Leticia Winkler Aula 5 e 6 Pilhas e suas Aplicações prof Leticia Winkler 1 Definição de Pilha (Stack) São estruturas de dados do tipo LIFO (last-in first-out) - o último elemento a ser inserido, será o primeiro a ser

Leia mais

Tabelas de Dispersão. Estrutura de Dados e Algoritmos

Tabelas de Dispersão. Estrutura de Dados e Algoritmos Tabelas de Dispersão Tabelas de Dispersão Sumário Definição. Características. Resolução de colisões: dispersão com listas e dispersão aberta. Teste quadrático. Desempenho de tabelas de dispersão. Interface

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) ASN Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso

Leia mais