UNIVERSIDADE FEDERAL DO AMAZONAS- UFAM INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA- ICET SISTEMAS DE INFORMAÇÃO ALGORITMOS E ESTRUTURAS DE DADOS II PILHAS.

Slides:



Advertisements
Apresentações semelhantes
Estruturas de Dados Listas Prof. Rodrigo Rocha
Advertisements

Estruturas de Dados Pilha Prof. Rodrigo Rocha
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Marco Antonio Montebello Júnior
Marco Antonio Montebello Júnior
Marco Antonio Montebello Júnior
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.
Recursividade Prof. Rosana Palazon.
Listas encadeadas Prof. Rosana Palazon.
Algoritmos de manipulação de estruturas elementares de dados
Listas duplamente encadeadas
Programação II Estruturas de Dados
Programação II Estruturas de Dados
TADS – Tipos Abstratos de Dados
Aula T11 – BCC202 Pilhas Túlio Toffolo
Pilha David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Aplicações de Pilhas Pilhas são fundamentais em diversas áreas da computação: Sistemas Operacionais Arquitetura de Computadores Compiladores Entre outros.
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
AED – Algoritmos e Estruturas de Dados
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Listas com Ponteiros Listas encadeadas Listas circulares.
Slides: Prof. João Fabro UTFPR - Curitiba
Listas Encadeadas.
Prof. Hilton Cardoso Marins Junior
Listas Simplesmente Encadeadas
ALGORITMOS E ESTRUTURAS DE DADOS
Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida
Listas Lineares Estrutura de Dados.
Algoritmos e Estruturas de Dados
Pesquisa em Memória Primária
Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
INTELIGÊNCIA ARTIFICIAL
Tipos Abstratos de Dados
Árvores Binárias de Pesquisa
TAD Pilha com Alocação Dinâmica de Memória
Implementação de FILAS com Alocação Dinâmica
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Denise Guliato Faculdade de Computação – UFU
Aula 3 Vetores e Listas. Arrays (vetores) Array – sequência de elementos do mesmo tipo. Tamanho do Array – seu número de elementos (número fixo) Consequência:
Listas, Filas e Pilhas Katia Guimarães.
Aula 3 Listas, pilhas, filas.
Estruturas de Dados Aula 9: Listas (parte 1)
Estruturas de Dados PROFESSOR DIÓGENES FURLAN. Estruturas de Dados (ED) Programas operam sobre dados Dados são relacionados e possuem estrutura Como representar.
Estruturas de Dados Aula 11: TAD Pilha
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Listas.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Estruturas de Dados Aula 15: Árvores
Prof. Hilton Cardoso Marins Junior ÁRVORES BINÁRIAS.
Lista Linear Base para outras estruturas
Introdução a Árvores e Árvores Binárias
Objetivos Ao concluir esta Disciplina espera-se que os alunos sejam capazes de: Distinguir os conceitos de Estrutura e Dados; Compreender o que são, como.
Estruturas de Dados Murilo Salgado Razoli.
Estrutura de Dados Aula 3 - Listas
Estrutura de dados Pilhas e filas
Profa. Juliana Mafra ESTRUTURA DE DADOS 30 de Setembro de 2009 Faculdade de Informática e Tecnologia de Pernambuco.
11 Pilhas, Filas e Listas Duplamente Encadeadas Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Pilha dinâmica Prof.° Jean Daniel Henri Merlin Andreazza
Estrutura de Dados Prof. André Cypriano M. Costa
UNIVERSIDADE FEDERAL DE MINAS GERAIS Pilhas e Filas Cristiano Arbex Valle Vinicius Fernandes dos Santos
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
1 Bibliografia 1. WIRTH, Niklaus. Algoritmos e estruturas de dados. 2. TENEMBAUM, Aaron. Estruturas de Dados usando C. 3. MORAES, Celso. Estruturas de.
INF1007 – Programação 2 9 – Pilhas
Transcrição da apresentação:

UNIVERSIDADE FEDERAL DO AMAZONAS- UFAM INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA- ICET SISTEMAS DE INFORMAÇÃO ALGORITMOS E ESTRUTURAS DE DADOS II PILHAS ACADÊMICOS: Eurimar Lemos Joicilene Nunes Katlhen Maciel Márcio Dias Yasmim Ehm DEZEMBRO de 2011

Pilhas (Estáticas X Dinâmicas) CONCEITO/ FUNDAMENTOS PILHA : Uma das estruturas de dados linear mais simples é a pilha. Possivelmente por essa razão, é a estrutura de dados mais utilizada em programação, sendo inclusive implementada diretamente pelo hardware da maioria das máquinas modernas. Itacoatiara-AM

Pilhas (Estáticas X Dinâmicas) PILHA ESTÁTICA: também chamada de seqüencial, os elementos desta pilha são armazenados em endereços seqüenciais. Materializada na forma de um vetor (arranjo ou matriz). Um vetor de elementos (tamanho pré-definido). Uma variável que controle o topo da pilha. PILHA DINÂMICA: ou encadeada, elementos encadeados por ponteiros. Cada elemento possui pelo menos dois campos: um para armazenar a informação e outro para o endereço do próximo (ponteiro), tudo com alocação dinâmica. Uma struct representando um nó da pilha (dado e ponteiro para o próximo nó da pilha). Um ponteiro para o 1º nó representando a pilha. O primeiro elemento (início) da lista encadeada irá representar o topo atual da pilha. Itacoatiara-AM

Podemos fazer uma analogia com uma pilha de pratos em um restaurante COMO FUNCIONA? Podemos fazer uma analogia com uma pilha de pratos em um restaurante Se quisermos adicionar um prato na pilha, o colocamos no topo da pilha de pratos. Para pegar um prato da pilha, retiramos o do topo. Ou ainda: um software que implemente a função UNDO (o famigerado “Crtl+Z”). A última ação feita será a primeira a ser desfeita. Não podemos retirar qualquer ação, segue-se a ordem. Não podemos inserir uma ação na pilha de ações, caso ela não se torne a última. Itacoatiara-AM

Exemplo Pilha Estática TOPO Desempilha C A B C Pilha Itacoatiara-AM

Exemplo Pilha Dinâmica TOPO PPot PHis PFis PCiê Vazio Aux Aux

Pilha 3 operações básicas: 3 operações essenciais: Consulta: acessa o elemento posicionado no topo; Empilha: insere um novo elemento no topo; Desempilha: remove um elemento do topo. 3 operações essenciais: Inicializa: inicializa a pilha no estado “vazia”; EstaVazia: verifica se a pilha está vazia; EstaCheia: verifica se a pilha está cheia;

Operações Básicas Definição da Estrutura #define m 10 struct Pilha { int topo; int elem[m]; }; Inicializar uma Pilha void iniciaPilha (struct Pilha *P) { P->topo=-1; } Empilhar na Pilha void empilhar(struct Pilha *P, int x) { if (P->topo== m-1) printf(“Pilha Cheia”); else { P->topo++; P->elem[P->topo]=x; } Itacoatiara-AM

Operações Básicas Consulta o elemento da pilha Desempilha da Pilha int topo (struct Pilha *P) { int x; if (P->topo==-1) printf(“Pilha Vazia”); else { x=P->elem[P->topo]; return (x); } void desempilha (struct Pilha *P) { if (P->topo==-1) printf(“Pilha Vazia”); else { P->topo--; } Itacoatiara-AM

Demonstrando um algoritmo de pilha estática. Itacoatiara-AM

Ex.: ((A+B ou A+B( violam o critério 1 APLICAÇÃO Exemplo: utilização de uma pilha para garantir o correto agrupamento de parênteses, colchetes e chaves em uma expressão matemática. Verificar se existe um número igual de símbolos abrindo e fechando de cada tipo. Verificar se todo símbolo fechando está precedido de um abrindo do mesmo tipo Ex.: ((A+B ou A+B( violam o critério 1 )A+B( ou (A+B)) violam o critério 2 (A+B] ou {A-(B]} violam os 2 critérios Percorrer toda a expressão: A cada símbolo abrindo, empilhar. A cada símbolo fechando, desempilhar e verificar se é do mesmo tipo . 2. Expressão válida: se ao final, a pilha estiver vazia 3. Expressão inválida: se houver uma tentativa de desempilhar com a pilha vazia; se o símbolo desempilhado for diferente do atual ou se ao final a pilha NÃO estiver vazia. Itacoatiara-AM

sintaxe de expressões aritméticas. APLICAÇÕES Adequadas ao processamento de estruturas aninhadas de profundidade imprevisível; sintaxe de expressões aritméticas. controle da seqüência de chamadas de expressões aritméticas. Controle de recursividade; Percurso em árvores. Itacoatiara-AM

PARA QUE SERVE? É utilizado para problemas que envolvam seqüência de ações a serem realizadas. Ou seja, onde não há possibilidade de pular etapas. Itacoatiara-AM

Bibliografia SILVA, Osmar Quirino da. Estruturas de Dados e Algoritmos Usando C – Fundamentos e Aplicações. Rio de Janeiro: Editora Ciência Moderna Ltda.,2007 PEREIRA, Silvio do Lago. Estruturas de Dados Fundamentais. Conceitos e Aplicações. 11ª Edição. São Paulo: Érica, 2008. Itacoatiara-AM