FICHA 8 PILHAS E FILAS
|
|
|
- Sophia Fontes Malheiro
- 7 Há anos
- Visualizações:
Transcrição
1 ESTRUTURAS DE DADOS E ALGORITMOS Departamento de Engenharia Eletrotécnica e de Computadores Faculdade de Ciências e Tecnologia da Universidade de Coimbra FICHA 8 PILHAS E FILAS 8.1. Objetivos Objetivos que o aluno é suposto atingir com esta ficha: - Compreender o conceito de pilha e o conceito de fila; - Conhecer a sua utilidade em programação; - Saber manipular de forma adequada as pilhas e as filas, podendo facilmente implementar/alterar funções que manipulam estes tipos particulares de listas ligadas Pilhas Uma das estruturas ligadas de dados mais simples de manipular é a pilha. Possivelmente por essa razão, é uma das estruturas mais utilizadas em programação, sendo inclusive implementada diretamente pelo hardware da maioria das máquinas modernas. A ideia fundamental por detrás de uma pilha é que todo o acesso aos seus elementos é feito através do elemento que está no topo. Quando um elemento novo é introduzido na pilha, passa a ser o elemento do topo, e passa a ser também o único elemento que pode ser removido de imediato da pilha. Isto faz com que os elementos da pilha sejam retirados pela ordem inversa daquela com que foram introduzidos: o primeiro que sai é o último que entrou ; a sigla LIFO «last in, first out» é usada para descrever esta estratégia. Para entendermos o funcionamento de uma pilha, podemos fazer uma analogia com uma pilha de pratos. Se quisermos adicionar um prato à pilha, temos que o colocar no topo. Para retirar um prato da pilha, temos que retirar primeiro o do topo. Uma pilha funciona precisamente da mesma maneira. Existem duas operações básicas que devem ser implementadas numa estrutura que define uma pilha: a operação para colocar um novo elemento no topo da pilha e a operação para retirar um elemento do topo da pilha. É comum referirmo-nos a essas duas operações através dos termos em inglês, «push» (colocar na pilha) e «pop» (retirar da pilha). Podemos representar uma pilha de inteiros através da definição da seguinte classe: class CNoPilha{ public: int Dados; CNoPilha *Proximo; ; Estruturas de Dados e Algoritmos Ficha 08 (versão 22 de abril de 2014) Página 1 de 9
2 class CPilhaInteiros{ CNoPilha *Topo; // Ponteiro para o elemento no topo da pilha public: CPilhaInteiros(void); ~CPilhaInteiros(void); ; void Push(const int Item); bool Pop(int & Item); void EscrevePilha(void); bool PilhaVazia(){ return(topo==); A classe CPilhaInteiros apenas armazena um ponteiro para o elemento que está no topo da pilha. São definidos alguns métodos que nos permitem manipular a pilha. O primeiro dos métodos indicados é o construtor que apenas inicializa com o vsalor o membro Topo, indicando assim que a pilha está inicialmente vazia. CPilhaInteiros::CPilhaInteiros(){ Topo=; É importante também definir um destrutor uma vez que, antes de se destruir o objeto CPilhaInteiros, é necessário libertar a memória associada a cada um dos nós. Para tal, percorre-se a pilha utilizando dois ponteiros auxiliares que apontam, em cada instante, para o elemento atual e para o próximo elemento. Desta forma, é possível destruir o elemento atual sem perder uma ligação aos elementos seguintes da lista (apontados por Proximo). CPilhaInteiros::~CPilhaInteiros(){ CNoPilha *Atual,*Proximo; if(topo!=){ Atual=Topo; while(atual!=){ Proximo=Atual->Proximo; delete Atual; Atual=Proximo; Topo=; Estruturas de Dados e Algoritmos Ficha 08 (versão 22 de abril de 2014) Página 2 de 9
3 A implementação do método void Push(int), utilizado para inserir um novo inteiro no topo da pilha, é a seguinte: void CPilhaInteiros::Push(const int Item){ CNoPilha *Novo=new CNoPilha; Novo->Dados=Item; Novo->Proximo=Topo; Topo=Novo; A figura a seguir apresenta de forma esquemática o método utilizado para inserir um novo elemento no topo da pilha: A implementação do método bool pop(int&), utilizado para retirar um elemento do topo da pilha, é a seguinte: bool CPilhaInteiros::Pop(int &Item){ CNoPilha *Aux; if(topo==) return(false); Item=Topo->Dados; Aux=Topo; Topo=Aux->Proximo; delete(aux); return(true); A figura a seguir apresenta de forma esquemática o método utilizado para retirar um dado elemento do topo da pilha: Estruturas de Dados e Algoritmos Ficha 08 (versão 22 de abril de 2014) Página 3 de 9
4 Finalmente, apresentamos um último método que permite escrever no ecrã os valores armazenados na pilha de inteiros: void CPilhaInteiros::EscrevePilha(void){ CNoPilha *Aux; if(topo==) cout << "Pilha Vazia... " << endl; else{ Aux=Topo; while(aux!=){ cout << Aux->Dados << endl; Aux=Aux->Proximo; 8.3. Filas Outra estrutura de dados que é muito utilizada em computação é a fila. Numa fila, o acesso aos seus elementos segue uma regra diferente: enquanto na pilha o último que entra é o primeiro que sai, na fila o primeiro que entra é o primeiro que sai ; a sigla FIFO «first in, first out» é usada para descrever essa estratégia. A ideia fundamental da fila é que só podemos inserir novos elementos no final da fila e só podemos retirar dela o elemento que está no início. A estrutura de uma fila é uma analogia natural com o conceito de fila que usamos no nosso dia-a-dia: o primeiro a entrar numa fila é o primeiro a ser atendido (a sair da fila). Um exemplo de utilização em computação é a implementação de uma fila de impressão. Se uma impressora é compartilhada por várias máquinas, devem-se adotar estratégias para determinar que documento será impresso em primeiro lugar. A estratégia mais simples é tratar todas as requisições com a mesma prioridade e imprimir os documentos na ordem pela qual foram submetidos o primeiro a ser submetido é o primeiro a ser impresso. Para implementar uma fila, devemos ser capazes de inserir novos elementos numa das extremidades, o fim, e retirar elementos da outra extremidade, o início. Para tal temos a necessidade de utilizar dois ponteiros para referenciar cada um destes dois elementos. Podemos representar uma fila de inteiros através da seguinte definição de classe: class CNoFila{ public: int Dados; CNoFila *Proximo; ; Estruturas de Dados e Algoritmos Ficha 08 (versão 22 de abril de 2014) Página 4 de 9
5 class CFilaInteiros{ CNoFila *Inicio; // Ponteiro para o início da Fila CNoFila *Fim; // Ponteiro para o fim da Fila public: CFilaInteiros(void); ~CFilaInteiros(void); ; void InsereNaFila(const int Item); bool RetiraDaFila(int & Item); void EscreveFila(void); bool FilaVazia(void){return(Inicio==); A classe CFilaInteiros tem necessidade de armazenar dois ponteiros. O primeiro serve para referenciar o elemento que está no início da fila e o segundo o último elemento da fila. São definidos alguns métodos que nos permitem manipular a fila. O primeiro dos métodos indicados é o construtor que apenas inicializa com o valor os dois ponteiros para as extremidades da lista, indicando assim que a fila está inicialmente vazia. CFilaInteiros::CFilaInteiros(){ Inicio=; Fim=; Mais uma vez, é importante também libertar a memória associada a cada um dos nós que constituem a fila. Para tal define-se um destrutor que percorre a fila utilizando dois ponteiros auxiliares que apontam, em cada instante, para o elemento atual e para o próximo elemento. Desta forma, é possível destruir o elemento atual sem perder uma ligação aos elementos seguintes da lista (apontados por Proximo). CFilaInteiros::~CFilaInteiros (){ CNoFila *Atual,*Proximo; if(inicio!=){ Atual=Inicio; while(atual!=){ Proximo=Atual->Proximo; delete Atual; Atual=Proximo; Inicio=Fim=; Estruturas de Dados e Algoritmos Ficha 08 (versão 22 de abril de 2014) Página 5 de 9
6 A implementação do método void InsereNaFila(int), utilizado para inserir um novo elemento na fila é a seguinte: void CFilaInteiros::InsereNaFila(const int Item){ CNoFila *Novo=new CNoFila; Novo->Dados=Item; Novo->Proximo=; if(inicio==) Inicio=Novo; else Fim->Proximo=Novo; Fim=Novo; A figura a seguir apresenta de forma esquemática o método utilizado para inserir um novo elemento no fim da fila: F I Novo A implementação do método bool RetiraDaFila(int&) é a seguinte: bool CFilaInteiros::RetiraDaFila(int &Item){ CNoFila *Aux; if(inicio==) return false; Item=Inicio->Dados; Aux=Inicio; Inicio=Aux->Proximo; if(inicio==) Fim=; // era o último elemento; a fila ficou vazia delete Aux; return true; Estruturas de Dados e Algoritmos Ficha 08 (versão 22 de abril de 2014) Página 6 de 9
7 A figura a seguir apresenta de forma esquemática o método utilizado para retirar o elemento no início da fila: F I Aux Finalmente, apresentamos um último método que permite escrever no ecrã os valores armazenados na fila de inteiros: void CFilaInteiros::EscreveFila(void){ CNoFila *Aux; if(inicio==) cout << A Fila está Vazia << endl; else { Aux=Inicio; while(aux!=){ cout << Aux->Dados << endl; Aux=Aux->Proximo; 8.4. Exercícios sugeridos Com o conjunto de exercícios apresentados a seguir, pretende-se que o aluno consolide os seus conhecimentos relativos às pilhas e filas. Para permitir uma melhor orientação do estudo, cada exercício foi classificado de acordo com o seu nível de dificuldade. Aconselha-se o aluno a tentar resolver em casa os exercícios não realizados durante as aulas práticas. Problema 8.1 Fácil Implemente uma função que, utilizando uma pilha, inverta uma string passada como parâmetro dessa função. Problema 8.2 Fácil a) Implemente um novo método que permita substituir o último elemento de uma fila pelo maior de todos os seus elementos (só altera o valor do último, não alterando mais nenhum elemento da fila). b) Implemente um novo método que permita trocar o último elemento de uma fila com o maior de todos os seus elementos. Só precisa de trocar os dados, não movendo os nós da fila. Estruturas de Dados e Algoritmos Ficha 08 (versão 22 de abril de 2014) Página 7 de 9
8 Problema 8.3 Fácil Implemente os seguintes métodos na classe CPilhaInteiros: int NumElementos() devolve o número de elementos contidos na pilha. void TrocaTopo(int Valor) permite substituir o valor no topo da pilha com o valor passado como parâmetro. Problema 8.4 Médio Implemente um novo método bool PassaAFrente(int N) que permita passar o último elemento da fila para a posição N a contar do início da fila. Se o valor de N é superior ao número de elementos contidos na fila a função retorna false. Problema 8.5 Médio Escreva um novo construtor CPilhaInteiros (const CFilaInteiros &Fila) que permita criar uma pilha de inteiros a partir dos elementos contidos numa fila passada como parâmetro. Problema 8.6 Médio Implemente uma função booleana que, com o auxílio de uma estrutura do tipo pilha, faça a análise de expressões matemáticas com o objetivo de verificar o balanceamento dos seus parêntesis retos e curvos. O programa deve detetar erros como: falta de parêntesis, como por exemplo, ((a+b), e parêntesis trocados, como por exemplo, ([a+b)]. Problema 8.7 Médio Implemente um novo método void CompactaFila(int a, int b) que permita eliminar de uma fila todos os elementos v não contidos num determinado intervalo de valores a v b. Este intervalo é passado como parâmetro. Por exemplo, se a fila for inicialmente e o método for chamado com os parâmetros: CompactaFila(5,8), então, após a execução deste método, a fila passará a ser: Obs.: pode resolver este problema chamando os métodos RetiraDaFila() e InsereNaFila(). Alternativamente, pode tratar a fila como uma lista, manipulando os nós (e os ponteiros) necessários. Problema 8.8 Médio Implemente um novo método que permita inverter a ordem dos N primeiros elementos de uma fila. Por exemplo, se a fila contiver os elementos e N tiver o valor 3, então como resultado da função a fila deverá ficar igual a Obs.: pode resolver este problema chamando os métodos RetiraDaFila(), InsereNaFila() e utilizar uma pilha auxiliar para inverter os elementos. Alternativamente, pode tratar a fila como uma lista, manipulando os nós (e os ponteiros) necessários. Problema 8.9 Médio Complemente a implementação da classe CPilhaInteiros com as implementações dos operadores de comparação <, >, <=, >= que comparam duas pilhas em termos do número de elementos. Por exemplo, uma pilha é maior do que outra se o número de elementos que tiver for superior ao da segunda. Tenha em atenção a declaração standard de cada operador. Problema 8.10 Difícil Implemente a sobrecarga operator+ (operador adição) na classe CFilaInteiros de forma a permitir fundir duas filas numa só. A nova fila a devolver deverá ser constituída alternadamente por elementos de cada uma das filas de origem. Estruturas de Dados e Algoritmos Ficha 08 (versão 22 de abril de 2014) Página 8 de 9
9 Problema 8.11 Difícil Implemente um novo método na classe CPilhaInteiros que permita reordenar os elementos da pilha para que no topo fiquem os elementos pares e no fim da pilha os elementos ímpares. A ordem relativa dos números pares e ímpares deve permanecer a mesma. Considere o seguinte exemplo: Se a pilha contiver , então após a execução do método proposto a pilha passará a ser: Problema 8.12 Médio Implemente a sobrecarga operator- (operador subtração) na classe CFilaInteiros de forma a retirar de uma fila (1º operando) os seus elementos que também estejam contidos numa segunda fila (2º operando). Problema 8.13 Difícil Adicione um novo atributo Prioridade na classe CNoFila e redefina a implementação de todos os métodos da classe CFilaInteiros, e em particular do método InsereNaFila() de forma que a fila respeite sempre a regra: um novo elemento é inserido no final da fila, mas à frente de todos os elementos de prioridade menor e atrás de todos os elementos com prioridade igual ou superior; no limite, se todos os elementos atualmente existentes na fila tiverem prioridade menor que o novo elemento, o novo elemento é inserido no início da fila. Implemente ainda um novo método bool setprioridade(int N, int p) que mude para p o valor da prioridade do N-ésimo elemento da fila a contar do início da fila e que, em consequência, posicione corretamente na fila o elemento em causa, de forma que à sua frente só existam elementos de prioridade igual ou superior e atrás só existam elementos de menor prioridade. Se o N-ésimo elemento não existir, a função devolve false, caso contrário devolve true. Estruturas de Dados e Algoritmos Ficha 08 (versão 22 de abril de 2014) Página 9 de 9
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
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é
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
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
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
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
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
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
ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS
ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS TEORIA CONJUNTO ORDENADO DE ITENS NO QUAL NOVOS ITENS PODEM SER INSERIDOS E A PARTIR DO QUAL PODEM SER ELIMINADOS ITENS EM UMA
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
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
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
Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades
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
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:
A regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out).
Fila Algumas aplicações impõem regras de acesso às informações armazenados em estruturas de dados, restringindo como os dados são inseridos e removidos da estrutura. A fila, também conhecida como QUEUE,
Lista de Exercícios sobre Listas Implementadas por Encadeamento
Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um
Lista de Exercícios 04
Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professor: Túlio Toffolo (www.decom.ufop.br/toffolo)
Á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
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
10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa
10.1 Aula 10: Pilhas O conceito de pilha Algoritmos de inserção e remoção Exemplo: Notação Polonesa 10.2 Pilhas Uso eficiente de listas: inserções e remoções não devem acarretar movimentação de nós. A
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
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
Lista 02: Pilhas & Filas
MAC122 Princípios de Desenvolvimento de Algoritmos DCC IME USP 2º Semestre de 2018 Prof.: Dr. Paulo Miranda [email protected] Lista 02: Pilhas & Filas Para as questões envolvendo pilhas, assuma
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
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
Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 03 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.br/~brunogomes Agenda da Aula Representação de Algoritmos em Pseudocódigo: Tipos de Dados;
Fila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Fila e Deque SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências
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
EAD PILHA - DEFINIÇÃO
EAD PILHA - DEFINIÇÃO Os seus elementos são processados pela ordem inversa à ordem de chegada: - o último elemento a entrar na Pilha é o primeiro a sair (LIFO Last In First Out ). Qualquer operação que
Filas Exemplo de Aplicação
Filas Exemplo de Aplicação Uma aplicação interessante para filas é a ordenação por distribuição, descrita a seguir. Seja uma lista l composta de n chaves, cada qual representada por um inteiro numa base
Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler
Aula 3 Listas Lineares Sequenciais Ordenadas prof Leticia Winkler 1 Listas Lineares Sequenciais Ordenadas Elementos da lista estão dispostos num vetor (contíguos na memória) e ordenado de acordo com alguma
12. Filas Interface do tipo fila
12. Filas W. Celes e J. L. Rangel Outra estrutura de dados bastante usada em computação é a fila. Na estrutura de fila, os acessos aos elementos também seguem uma regra. O que diferencia a fila da pilha
C com introdução a OO
... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro
Revisão: Tipo Abstrato de Dados Recursividade
Algoritmos e Estrutura de Dados II Revisão: Tipo Abstrato de Dados Recursividade Prof a Karina Oliveira [email protected] Introdução Estudo das estruturas de dados envolve dois objetivos complementares:
Fila. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Fila SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Fila O que é? Para que serve? 2 Biblioteca Quais são as operações possíveis? Entrar na fila Quem entra, entra onde? Sair da fila Quem sai,
Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I
LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo
Algoritmos e estrutura de dados
Algoritmos e estrutura de dados Listas Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Listas Listas encadeadas
22/08/2011. Fila. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Fila. O que é? Para que serve?
Fila SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Fila O que é? Para que serve? 2 1 Biblioteca Problema: automação de uma biblioteca Todos os livros devem ser cadastrados O sistema
Aula 2 Listas Lineares Sequenciais. prof Leticia Winkler
Aula 2 Listas Lineares Sequenciais prof Leticia Winkler 1 Conteúdo Revisão de Vetor Definição Declaração Acesso dos Elementos Inicialização dos Elementos Exemplo Vetor e Função Lista Linear Operações com
UFJF - DCC - Estrutura de Dados e Laboratório de Programação II
UFJF - DCC - Estrutura de Dados e Laboratório de Programação II Árvore Binária (AB) 1. Considerar os tipos abstratos de dados definidos a seguir. Para o nó de uma árvore binária de números inteiros: class
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
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 é
Laboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
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
1. Faça um programa que leia uma string digitada pelo usuário e salve em um arquivo em branco.
Segunda lista de exercícios v100 Engenharia Elétrica - Eletrônica 2º Semestre de 2015 Prof: Daniel Rodrigo Ferraz Bonetti SSC0300 Linguagem de Programação e Aplicações 1 Faça um programa que leia uma string
Filas. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1
Filas Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Aplicações Implementação / Modelagem Operações de uma fila TAD da Fila em C UDESC - Rui J. Tramontin Jr. 2 Introdução
Filas Implementação Sequencial
SCE 202 182 Algoritmos e Estruturas de Dados I Filas Implementação Sequencial Conceito Coleção ordenada de itens (lista ordenada) em que a inserção de um novo item se dá em um dos lados no fim e a remoção
Pilhas e Filas. Nádia Félix e Hebert Coelho
Pilhas e Filas Nádia Félix e Hebert Coelho Vários slides foram adaptados de Nina Edelwais e Renata Galante Estrutura de Dados Série de Livros Didáticos - Informática - UFRGS Pilhas e filas Listas lineares
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
Algoritmos e Estruturas de Dados
Licenciatura em Engenharia Electrotécnica e de Computadores 2004/05 Algoritmos e Estruturas de Dados Trabalho prático P4B 2º semestre Efectue as tarefas de programação descritas abaixo, usando a linguagem
Escreva em Java a classe NumeroComplexo que represente um número complexo. A classe deverá ter os seguintes construtores:
Lista 2 1 - Números Complexos Números complexos são os que são escritos da forma: a + b*i onde a é a parte real e b a parte imaginária. Escreva em Java a classe NumeroComplexo que represente um número
Algoritmos e Estruturas de Dados II IEC013. TAD, Pilhas e Filas. Prof. César Melo
Algoritmos e Estruturas de Dados II IEC013 TAD, Pilhas e Filas Prof. César Melo TAD: Definição SE programa = definição de um tipo de dados + operação sobre dados desse tipo + restrições sobre dados e operações
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01
Técnicas de projeto de algoritmos: Indução
Técnicas de projeto de algoritmos: Indução ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 08/2008
Fila. 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações
Fila 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações Fila O que é? Para que serve? Modelos intuitivos de filas Linhas para comprar bilhetes de cinema
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
Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação
1 Árvores Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 2 Árvore Binária de Busca Definição: uma árvore binária de busca (ABB) é uma árvore binária na qual
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
