programas = estrutura de dados + algoritmos
|
|
- Baltazar Estrela Barata
- 6 Há anos
- Visualizações:
Transcrição
1 Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1 1. INTRODUÇÃO O mundo tem mudado rapidamente com ajuda dos computadores. Podemos citar as pesquisas espaciais, o projeto genoma, os simuladores de vôo, entre tantos outros. No entanto, ainda ocorrem limitações físicas importantes relacionadas ao volume de informações e à capacidade de processamento. Nem tudo que vemos ou sentimos pode ser representado por em um computador. Devido às tais limitações, é necessário abstrairmos a nossa realidade para que possamos capturar o que existe de mais relevante em uma situação real tornando assim possível a construção de modelos que possam ser implementados em computador por meio de uma linguagem de programação. Para a construção de bons modelos é necessário um bom conhecimento dos detalhes que compõem a situação real, ser capaz de expressá-los por meio de uma estrutura de dados adequada e desenvolver um algoritmo adequado que atue sobre esta estrutura de dados. A elaboração adequada de estrutura de dados e os algoritmos correspondentes é o que propiciará o desenvolvimento de programas de computadores: programas = estrutura de dados + algoritmos 1.1. Tipo de Dados Abstratos (TDA) Um tipo abstrato de dados pode ser definido como um modelo matemático pelo par (V,O) onde V é o conjunto de valores e O o conjunto de operações que atuam sobre esses valores. As operações devem ser consistentes com os tipos dos valores. Neste contexto o termo abstrato significa independência de implementação, isto é, não considera as limitações físicas do computador relativas a questões de eficiência (tempo de processamento, ocupação de memória). A idéia fundamental do tipo abstrato de dados abstrato é possibilitar ao programador a separação do conceito (o que fazer) da implementação ( de como fazer). A separação da definição do TDA de sua implementação permite que uma mudança de implementação não altere o programa que usa o TDA. A Figura 1.1 mostra um esquema de um TDA. Observamos que a interação entre a estrutura de dados e suas respectivas operações ficam invisíveis e inacessíveis para o usuário. Somente a descrição dos valores e o conjunto de operações do TDA ficam visíveis ao usuário. estrutura de dados dados dados função A função B Figura 1.1 Esquema de um tipo abstrato de dados Um TDA torna-se um Tipo de Dados Concreto ( ou simplesmente Tipo de Dados) através do processo de implementação, veja Figura 1.2. Por exemplo, o TDA números inteiros é definida tal que V = o conjunto de todos os números inteiros (..., -2,-1, 0, 1, 2,...) e O = +,-,/,*,^ que podem atuar sobre este conjunto. No entanto, as limitações físicas de memória de um computador não permitem a representação de todo o conjunto de números inteiros. O tipo de
2 Algoritmos e Estruturas de Dados I1 Prof. Eduardo 2 dados inteiro contemplará um nível suficiente de abstração dos números inteiros nos computadores ( em geral, no intervalo de a ). Exemplos de tipos de dados básicos na linguagem C: int, float, double, char. Exemplos de tipos de dados complexos em C: ponteiros, vetores uni, bi e multidimensionais, string de caracteres, tipos estruturados. Implementação Tipo de Dados Abstrato Figura 1.2 Tipo de Dado Concreto Tipo de Dados Concreto 1.2 Estrutura de dados Pode ser definida como agrupamentos de informações com um significado completo que normalmente são representados em estruturas de arranjos de dados, ou para as quais possam ser definidas operações próprias de conjuntos, tais como união e intersecção, ou ordenação e tratamento de repetição de valores (listas, filas, pilhas ); 1.3 Descrição de um tipo de dado abstrato Usaremos um formato específico para descrever um TDA que inclui um cabeçalho com o nome da TDA, uma descrição do tipo do dado e uma lista de operações, veja Figura 1.3. Para cada operação são especificados: - as entradas necessárias para executar a operação; - as pré-condições que devem ser verificadas antes de executar a operação; - o processo que deve ser executado; - as saídas que devem ser obtidas após a execução do processo e retornadas da operação; - as pós-condições, que indicam quaisquer alterações que a execução da operação em questão causou no dado. TDA nome-tda é: dados: domínio do dado operações: operação 1: entradas: pré-condição: processo: saída: pós-condição: operação 2:... operação n: fim TDA nome-tda Figura 1.3 Especificação de um TDA
3 Algoritmos e Estruturas de Dados I1 Prof. Eduardo 3 Exemplo: Descreva o tipo de dados abstrato números racionais (qualquer número que possa ser expresso como quociente de dois inteiros, ex: 1/2, 3, 3/4), considerando que as seguintes operações possam ser executadas sobre este conjunto: a) multiplica; b) soma; TDA nro_racional é: dado: consiste de dois inteiros, o primeiro é o numerador e o segundo o denominador operações: multiplica: entradas: quatro números inteiros sendo que cada par de números representa um número racional (n1/d1, n2/d2) pré-condição: os dois números devem ser válidos, isto é, d1 e d2 devem ser diferentes de zero processo: se a pré-condição foi atendida calcular a multiplicação de dois números racionais: nr = n1*d1 e dr = d1*d2 saída: se a pré-condição foi atendida retorna o resultado da multiplica (nr/dr) caso contrário retorna um nro racional 0/0 pós-condição: nenhuma soma: entradas: quatro números inteiros sendo que cada par de números representa um número racional (n1/d1, n2/d2) pré-condição: os dois números devem ser válidos, isto é, d1 e d2 devem ser diferentes de zero processo: se a pré-condição foi atendida, somar os dois números racionais O numerador do nro resultante é obtido por: nr = n1*d2+n2*d1 O denominador do nro resultante é obtido por: dr = d1*d2 saída: se a pré-condição foi atendida retorna o resultado da soma (nr/dr) caso contrário retorna um nro racional 0/0 pós-conidção: nenhuma fim TDA nro_racional
4 Algoritmos e Estruturas de Dados I1 Prof. Eduardo 4 2 LISTAS, FILAS E PILHAS As listas, filas e pilhas, são tipos abstratos de dados os quais nós criamos, em grande parte dos casos, para gerenciamento de estruturas de dados (registros). 2.1 Listas Uma das formas mais simples de interligar os elementos de um conjunto é através de uma lista. Lista é uma estrutura onde as operações inserir, retirar e localizar são definidas. Esta estrutura é considerada dinâmica porque torna possível a inserção de elementos sem deixar espaço na memória Lista encadeada Alocação Dinâmica Quando se trabalha com estruturas dinâmicas, o acesso aos elementos cadastrados dá-se através de um ponteiro. A estrutura da lista ligada dinâmica é muito simples. Existem somente 2 campos (INFO, NEXT), sendo que o campo next é um ponteiro para o próximo elemento da lista. * No início do programa, antes de qualquer operação com a lista, a mesma deve ser inicializada com NULO, indicando que está vazia. Criar uma lista encadeada para inserir os seguintes elementos: 1, 2, 4, 11 e 5 nos respectivos endereços de memória: 800, 1300, 970, 600 e 1800.
5 Algoritmos e Estruturas de Dados I1 Prof. Eduardo 5 Implementando uma Lista com as operações inserir e mostrar: #include<iostream.h> class lista struct node int e; lista *prox; no; public: lista *insere(lista *atual, int e); void mostra(lista *atual); ; void main() lista *inicio; int op,num; op=1; inicio=null; while(op!=3) cout<< \n1 - Inserir ; cout<< \n2 - Mostrar ; cout<< \n3 - Sair ; cout<< \ndigite a opção: ; cin>>op; switch(op) case 1: cout<< \ndigite um número: ; cin>>num; inicio=inicio insere(inicio,num); break; case 2: inicio mostra(inicio); break; //fim switch //fim while //fim main lista *lista::insere(lista *atual,int e) lista *p; p=new(lista); p no.e=e; p no.prox=atual; return p; //fim insere void lista::mostra(lista *atual) lista *p; p=atual; while(p!=null) cout<< \nnumero: <<p no.e; p=p no.prox; //fim while //fim mostra Exercícios: 1 - Utilizando o programa apresentado, faça um teste de mesa para inserir os elementos 10, 8 e 3. 2 Criar a função de remoção da lista. 3 Criar a função de inserir no final da lista.
6 Algoritmos e Estruturas de Dados I1 Prof. Eduardo Filas e Pilhas Uma pilha, assim como uma fila, é simplesmente uma lista linear de informações. Tanto a pilha como a fila podem ser implementadas por meio de uma lista encadeada ou de um vetor. O que difere uma pilha de uma fila é o mecanismo responsável pelo armazenamento e recuperação dos seus elementos. Enquanto a fila obedece ao princípio FIFO (First In First Out), uma pilha (ou stack) é manipulada pelo mecanismo LIFO (Last In First Out). A analogia mais próxima que se faz de uma pilha é compará-la a uma pilha de pratos e a mais próxima de uma fila é a própria fila única de um banco ou supermercado. Portanto, são tipos especiais de listas que apresentam restrições nas exclusões. Para realizar a exclusão de elementos em uma fila deve-se utilizar a filosofia FIFO (first in first out), ou seja, o 1º elemento inserido deverá ser o 1º a ser removido. Para realizar a exclusão de elementos em uma fila deve-se utilizar a filosofia LIFO (last in first out), ou seja, o último a entrar deverá ser o 1º a sair Pilhas Uma pilha é um conjunto ordenado de itens na qual todas as inserções e retiradas são feitas em uma das extremidades denominada Topo. Pilhas mantém a ordem (Last Input First Output). As operações sobre pilhas incluem: Push(x,s): insere o item x no topo da pilha s. Pop(s): retorna e remove o item do topo da pilha s. Inicialize(s): cria uma pilha s vazia. Full(s), Empty(s): testa a pilha para saber se ela está cheia ou vazia. Notadamente não poderá haver operação de pesquisa sobre uma pilha. A definição das operações abstratas acima permite a construção de uma pilha e sua reutilização sem a preocupação com detalhes de implementação. A implementação mais simples utiliza um vetor e uma variável que controla o topo da pilha. A implementação com elementos ligados através de ponteiros é melhor porque não ocasiona overflow.
7 Algoritmos e Estruturas de Dados I1 Prof. Eduardo 7 Resumo: O conceito de pilha é usado em muitos softwares de sistemas incluindo compiladores e interpretadores. (A maioria dos compiladores C usa pilha quando passa argumentos para funções). As duas operações básicas armazenar e recuperar são implementadas por funções tradicionalmente chamadas de push e pop, respectivamente. A função push() coloca um item na pilha e a função pop() recupera um item da pilha. A região de memória a ser utilizada como pilha pode ser um vetor, ou uma área alocada dinamicamente. Representação gráfica: Ação: 1. push (A) 2. push (B) 3. push (C) 4. pop ( ) recupera C 5. push (D) 6. pop ( ) recupera D 7. pop ( ) recupera B 8. pop ( ) recupera A Operações básicas: criar uma pilha vazia inserir um elemento (push) retirar um elemento (pop) verificar se a pilha está vazia liberar a estrutura pilha mostrar a pilha(*) Funcionamento: Ex: Entrada: A, B, C, D, E, F Seqüência: I I R I I R I R R I R R Saída: B D E C F A Exercícios: 1) Complete: a) Entrada: O D D A Seqüência: I I I R I R R R Saída:
8 Algoritmos e Estruturas de Dados I1 Prof. Eduardo 8 b) Entrada: I E N S R E Seqüência: I R I I R I R I I R R R Saída: 2) Complete: a) Entrada: O,A,D,D,S Seqüência: Saída: D,A,D,O,S b) Entrada: E,E,X,E,C,E,L,N,T Seqüência: Saída: E,X,C,E,L,E,N,T,E 3) Complete: a) Entrada: Seqüência: I,I,R,I,I,R,R,I,R Saída: D,A,D,O,S b) Entrada: Seqüência: I,I,I,R,I,I,I,R,I,I,I,R,R,R,R,R,R,R Saída: E,X,C,E,L,E,N,T,E Filas A estrutura de fila é análoga ao conceito que temos de filas em geral. O primeiro a chegar é sempre o primeiro a sair, e a entrada de novos elementos sempre se dá no fim da fila. Em computação vemos este conceito sendo implementado em filas de impressão. Assim como as pilhas, uma fila também pode ser implementada por meio de um vetor ou de uma lista encadeada. Filas mantém a ordem (first in, first out). Um baralho com cartas pode ser modelado como uma fila, se retirarmos as cartas em cima e colocarmos as carta de volta por baixo. Outro exemplo seria a fila de um banco. As operações de inserção são efetuadas no final e as operações de retirada são efetuadas no início. A inserção de um elemento torna-o último da lista (fila). As operações abstratas em uma fila incluem: Enqueue(x,q): insere o item x no fim da fila q. Dequeue(q): retorna e remove o item do topo da fila q. Inicialize(q): cria uma fila q vazia. Full(q), Empty(q): testa a fila para saber se ela está cheia ou vazia. Filas são mais difíceis de implementar do que pilhas, porque as ações ocorrem em ambas as extremidades. A implementação mais simples usa um vetor, inserindo novos elementos em uma extremidade e retirando de outra e depois de uma retirada movendo todos os elementos uma posição para a esquerda. Exemplo de implementação de uma fila:
9 Algoritmos e Estruturas de Dados I1 Prof. Eduardo 9 #include <iostream> #define SIZE 10 typedef struct int q[size+1]; /* corpo queue */ int first; /* posicao do primeiro elemento */ int last; /* posição do último elemento */ int count; /* numero de queue elementos */ queue; #define TRUE 1 #define FALSE 0 #define SIZE 3 //red <. using namespace std; void init_queue(queue *q) q->first = 0; q->last = SIZE-1; q->count = 0; void enqueue(queue *q, int x) if (q->count >= SIZE) cout << "Warning: overflow na fila ao inserir!" << x << endl; else q->last = (q->last+1) % SIZE; q->q[ q->last ] = x; q->count = q->count + 1; int dequeue(queue *q) int x; if (q->count <= 0) cout << "Warning: underflow na fila ao retirar!" << endl; else x = q->q[ q->first ]; q->first = (q->first+1) % SIZE; q->count = q->count - 1; return(x); int empty(queue *q) if (q->count <= 0) return (TRUE); else return (FALSE); void print_queue(queue *q) int i,j; i=q->first; cout <<endl<< "Elementos da fila:" << endl; while (i!= q->last) cout << q->q[i] << endl; i = (i+1) % SIZE; cout << q->q[i] << endl; int main(void) queue *q; init_queue(q); enqueue(q,12); enqueue(q,4); enqueue(q,32); print_queue(q); dequeue(q); enqueue(q,2); print_queue(q); dequeue(q); print_queue(q); return(0);
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 maisREVISÃ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 maisESTRUTURAS 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
Leia maisAula 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
Leia maisCES-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 maisEstrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção
Leia maisAlgoritmos e Estruturas de Dados 2007/2008
Pilhas e Filas Algoritmos e Estruturas de Dados 007/008 Pilhas Pilha estrutura de dados linear em que a inserção e a remoção de elementos de uma sequência se faz pela mesma extremidade, designada por topo
Leia maisS 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 maisEstruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 11 Pilhas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisUniversidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Estruturas de Dados
Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Estruturas de Dados Tópicos Especiais em Programação Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com
Leia maisAula 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 maisEstrutura de Dados II. Prof. Sérgio Portari
Estrutura de Dados II Prof. Sérgio Portari - 2016 Plano de Ensino EMENTA: Filas, Árvores e suas generalizações: árvores binárias, árvores de busca, árvores balanceadas, árvores B e B+. Aplicações de árvores
Leia maisEstruturas 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 maisFilas. 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 maisEstrutura de Dados: Aula 3 - Linguagem C
Estrutura de Dados: Aula 3 - Linguagem C Uso de Memória Alocação de memória Estática Ocorre em tempo de compilação no momento em que se define uma variável ou estrutura é necessário que se definam seu
Leia maisAula 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 maisMotivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software
Estrutura de Dados Aula 01 -Tipos Abstratos de de Dados Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Motivação Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto
Leia maisASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS
ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS INTRODUÇÃO O que é uma Estrutura de Dados (ED)?? Tipos de Dados? Estruturas de Dados e? Tipos Abstratos
Leia maisInstituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Estrutura de Dados I Prof.: José Luiz A.
1 Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Prof.: José Luiz A. Duizith Procedimento Insere_Esquerda (Lista,Valor) Aloque(Aux) Se (Aux = Nil) Senao Aux.Dado Valor
Leia maisEstruturas 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 maisFila. 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 maisIntrodução a Programação. Tipos Abstratos de Dados Implementando Pilha e Fila
Introdução a Programação Tipos Abstratos de Dados Implementando Pilha e Fila Abstração Abstração é o processo ou resultado de generalização por redução do conteúdo da informação de um conceito ou fenômeno
Leia maisFilas. 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
Leia maisLP II Estrutura de Dados
LP II Estrutura de Dados Filas Estáticas Sequenciais Prof. José Honorato Ferreira Nunes honoratonunes@softwarelivre.org http://softwarelivre.org/zenorato/honoratonunes Filas - conceitos É uma lista linear
Leia maisANHANGUERA ESTRUTURA DE DADOS AULA 06 LISTAS CIRCULARES E DUPLAMENTE ENCADEADAS. Prof. Thomás da Costa
ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 06 Prof. Thomás da Costa thomascosta@aedu.com Vamos ver o PEA : PEA Estrutura de Dados Antes de iniciar a aula, vamos mostrar o andamento do PEA. Vou mostrar as
Leia maisListas 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 maisA 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,
Leia maisPilhas. 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 maisListas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de
Leia maisUNIP - 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 maisPilhas 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 maisUniversidade Federal do Ma Curso de Ciência da Computação
Universidade Federal do Ma Curso de Ciência da Computação Estrutura de Dados Prof. Anselmo C. de Paiva Depto de Informática Limitações dos vetores Vetores Simples, Rápidos Mas, é necessário especificar
Leia maisAlgoritmos e Estruturas de Dados II IEC013
Algoritmos e Estruturas de Dados II IEC013 TAD, Pilhas e Filas Prof. César Melo Todos os créditos ao Prof. Leandro Galvão TAD: Definição SE programa = definição de um tipo de dados + operação sobre dados
Leia maisInstituto de C. Filas. Luis Martí Instituto de Computação Universidade Federal Fluminense -
Instituto de C Filas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução
Leia maisEstruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 12 - Filas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisAula 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 maisSCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha
Leia maisFilas 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 maisFICHA 8 PILHAS E FILAS
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
Leia maisFilas. 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 maisINF P4-12/12/09 Questão 1 Nome:
INF 1007 - P4-12/12/09 Questão 1 QUESTÃO OBRIGATÓRIA [Valor: 2,5 pontos] Escreva um programa completo em C que leia do teclado um caractere e uma cadeia de caracteres e escreva quantas vezes aquele caractere
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Frequência Resolução 19/maio/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as seguintes
Leia maisLÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURA COM DECISÃO MÚLTIPLA. Prof. Dr. Daniel Caetano
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURA COM DECISÃO MÚLTIPLA Prof. Dr. Daniel Caetano 2013-1 Objetivos Entender o que são decisões múltiplas Compreender como implementar decisões múltiplas Capacitar
Leia maisEstrutura de Dados Conceitos Iniciais
Engenharia de CONTROLE e AUTOMAÇÃO Estrutura de Dados Conceitos Iniciais Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
Leia maisSCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)
SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{
Leia maisFila 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 paulovic@icmc.usp.br Instituto de Ciências
Leia maisANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa
ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 04 Prof. Thomás da Costa thomascosta@aedu.com O que é: Matrizes São vetores que possuem duas ou mais dimensões para armazenar valores. Uma matriz de duas dimensões,
Leia maisAlgoritmos e Estruturas de dados
Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores
Leia maisINF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1
INF1007 Programação 2 9 Pilhas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Interface do tipo pilha Exemplo de uso: verificação de expressões Implementação de pilha com lista encadeada
Leia maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas
Leia maisPilhas 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
Leia maisCapítulo 8: Abstrações de dados
Capítulo 8: Abstrações de dados Ciência da computação: Uma visão abrangente 11a Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Estruturas de dados básicas Matriz homogênea Matriz
Leia maisAlgoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs)
Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs) SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic
Leia maisVariação de implementação. Variação de implementação (2) Variação de implementação (3)
Estruturas de Dados Aula 8: Tipos Abstratos de Dados Variação de implementação Há diferentes implementações possíveis para o mesmo tipo de dado Todas definem o mesmo domínio e não mudam o significado das
Leia maisEstrutura de dados 1. Ponteiros
Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem
Leia maisAula 26: Estruturas heterogêneas
Aula 26: Estruturas heterogêneas Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização
Leia maisLinguagem C: Listas Encadeadas
Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Introdução 2 3 Organização Introdução 1 Introdução 2 3 Introdução Introdução
Leia maisProgramação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Vetores vs Estruturas Dinâmicas Vetores (arrays): Ocupa um espaço contíguo de memória Permite acesso randômico
Leia maisPCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Túlio A. M. Toffolo) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade
Leia maisEstruturas 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 maisESTRUTURA COM DECISÃO COMPOSTA
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURA COM DECISÃO COMPOSTA Prof. Dr. Daniel Caetano 2018-1 Objetivos Entender o que são decisões compostas Compreender como implementar decisões compostas Capacitar
Leia maisAlgoritmos 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
Leia maisPilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista
Pilha SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências
Leia maisInstituto 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
Leia maisUniversidade Estadual Paulista Júlio de Mesquita Filho UNESP
Introdução à Computação II AULA 16 BCC Noturno - EMA896115B Prof. Rafael Oliveira olivrap@gmail.com Universidade Estadual Paulista Júlio de Mesquita Filho UNESP Rio Claro 2014 (Sem 2) Estruturas de Dados
Leia maisProva 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova PMR00 o. semestre 0 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço.. ( pontos) Um heap binário é uma árvore binária completa (todos os níveis exceto o último
Leia maisFila. Algoritmos e Estruturas de Dados I. Baseado no material de Thiago A. S. Pardo. Debora Medeiros
Fila Baseado no material de Thiago A. S. Pardo Algoritmos e Estruturas de Dados I Debora Medeiros Fila O que é? Para que serve? 2 Biblioteca Problema: automação de uma biblioteca Todos os livros devem
Leia maisBCC202 - 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 maisPilhas 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- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação
Programação 1I Prof. Osório Lista Linear Seqüencial (Alocação Estática) Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação
Leia maisEstrutura de Dados. Aleardo Manacero Jr.
Estrutura de Dados Aleardo Manacero Jr. Programa Tipos abstratos de Dados (semana 1) Listas, pilhas e filas (semana 1) Árvores (semanas 2, 3 e 4) Tabelas Hash (espalhamento) (semana 5) Gerenciamento de
Leia maisProf. Jesus José de Oliveira Neto
Prof. Jesus José de Oliveira Neto É uma das estruturas de dados mais simples A idéia fundamental da pilha é que todo o acesso a seus elementos é feito através do seu topo. Assim, quando um elemento novo
Leia maisLista: conceito, representação e algoritmos
Lista: conceito, representação e algoritmos SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Problema Imaginem a situação da automação de uma biblioteca Todos os livros devem ser cadastrados
Leia maisEstruturas de Dados Aula 8: Tipos Abstratos de Dados 30/03/2011
Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/03/2011 Variação de implementação Há diferentes implementações possíveis para o mesmo tipo de dado Todas definem o mesmo domínio e não mudam o significado
Leia mais22/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
Leia maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Alocação sequencial Listas lineares,
Leia maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisINF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática
Leia maisEstruturas de Dados - Filas
Estruturas de Dados - Filas Leandro Tonietto ltonietto@unisinos.br Algoritmos e Estruturas de Dados em C++ Unisinos http://www.inf.unisinos.br/~ltonietto/jed/aed/filas.pdf Abr-8 Uma fila (queue) é uma
Leia maisBit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256
Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256 informações diferentes; Tipos Primitivos são implementados nas
Leia maisListas (Parte 1) Túlio Toffolo BCC202 Aula 09 Algoritmos e Estruturas de Dados I
Listas (Parte 1) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 09 Algoritmos e Estruturas de Dados I Ementa do Curso Tipos Abstratos de Dados / Alocação Dinâmica Análise de Algoritmos
Leia maisAlgoritmos e Estruturas de Dados
Pilhas e Filas Algoritmos e Estruturas de Dados 009/00 Obs: slides marcados com (*) não foram apresentados na aula teórica, mas são parte da bibliografia a estudar! Pilhas Pilha estrutura de dados linear
Leia maisEstruturas de Dados. Túlio Toffolo BCC402 Aula 02 Algoritmos e Programação Avançada
Estruturas de Dados Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC402 Aula 02 Algoritmos e Programação Avançada Estruturas de dados elementares Arranjos (arrays) Pilhas (stacks) Filas (queues)
Leia maisAula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler
Aula 10 Alocação Dinâmica de Memória Listas Encadeadas prof Leticia Winkler 1 Prof. Leticia Winkler 2 Alocação de Memória Reservar na memória (principal), o espaço para guardar a informação através da
Leia maisPilhas e Filas. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Pilhas e Filas Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Pilhas 2 Pilhas (Stack) Estrutura similar às listas lineares que vimos na última aula [Mais Simples]
Leia maisListas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de
Leia maisAplicaçõ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 maisSlide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.
Slide 01 16/03/2017 Estruturas de Dados Prof. Cleziel Franzoni da Costa 1 @Cleziel /Cleziel cleziel@hotmail.com 42 3 EMENTA Listas lineares e suas variações. Filas e pilhas. Árvores binárias e suas variações.
Leia mais10.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
Leia maisLista: conceito, representação e algoritmos
Alocação seqüencial vs. encadeada Lista: conceito, representação e algoritmos Alocação seqüencial: elementos são alocados em seqüência; seqüência física Baseado no material de Thiago A. S. Pardo Algoritmos
Leia maisLinguagem C++ Estruturas de controle Parte II Estruturas de repetição
Fundamentos de Programação Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Prof. Bruno E. G. Gomes IFRN 1 Estruturas de Controle Permitem o controle da sequência de execução de um
Leia maisFila. Fila. Biblioteca. Biblioteca. Biblioteca. Biblioteca. O que é? Para que serve? Algoritmos e Estruturas de Dados I
Fila Fila O que é? Para que serve? Baseado no material de Thiago A. S. Pardo Algoritmos e Estruturas de Dados I Debora Medeiros 2 Biblioteca Problema: automação de uma biblioteca Todos os livros devem
Leia maisEAD 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
Leia maisFilas 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
Leia maisComputação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ ovsj@cin.ufpe.br Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 13 Pilhas Edirlei Soares de Lima Pilha Uma pilha é uma estrutura de dados dinâmica na qual novos elementos são sempre inseridos no topo da pilha e acessados
Leia maisLP II Estrutura de Dados
LP II Estrutura de Dados Pilhas Estáticas Sequenciais Prof. José Honorato Ferreira Nunes eu@honorato.eu http://softwarelivre.org/zenorato/honoratonunes Pilhas - conceitos Pilhas são listas onde a inserção
Leia maisMétodos Computacionais. Listas Encadeadas
Métodos Computacionais Listas Encadeadas Vetores Declaração de vetor implica na especificação de seu tamanho Não se pode aumentar ou diminuir tamanho Outra alternativa no uso de vetores é alocar dinamicamente
Leia mais