Algoritmos e Estrutura de Dados Aula 08 Pilhas

Documentos relacionados
Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista

Algoritmos e Estrutura de Dados Aula 02 Listas em Python

Pilha. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Prof. Jesus José de Oliveira Neto

2 Aplicação Pilha: Avaliador de Expressões Simples

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

Pilhas e Filas. Nádia Félix e Hebert Coelho

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

Lista 02: Pilhas & Filas

Exemplos. Alocação Dinâmica de Pilhas. Pilhas. Pilhas. Implementação Seqüencial X Encadeada. SCE 182 Algoritmos e Estruturas de Dados I

10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa

Algoritmos e Estruturas de Dados I PILHAS. Prof. Tiago Eugenio de Melo

Estruturas de Dados Pilhas, Filas, Listas

Avaliação de expressões. Prof: Sérgio Souza Costa

08/08/2011. Pilha. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Pilha. O que é? Para que serve?

Estruturas de Dados Pilhas, Filas, Listas

Pilhas. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1

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

SCC Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados 2007/2008

Carlos Eduardo Batista. Centro de Informática - UFPB

Aula 4 Expressões e Operadores Cleverton Hentz

Interpretador Hall - Calculando o MDC

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

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

Alocação Seqüencial VAL MAX TOPO

Estrutura de Dados. Diego Silveira Costa Nascimento

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias

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

ESTRUTURA DE DADOS PILHAS SEQUENCIAIS

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

4.1- Aritméticos + soma - subtração * multiplicação / divisão % módulo (resto da divisão de inteiros ).

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

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

ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS

1/50. Conceitos Básicos. Programa Básico

7 Operadores e Expressões

Tipos abstratos de dados; pilhas e filas

Programação Orientada a Objetos II JAVA Décima Aula. Prof. Rogério Albuquerque de Almeida

Estruturas de Dados Pilhas, Filas e Deques

Algoritmos e Estrutura de Dados Aula 05 Dicionários em Python

Estrutura de Dados: Pilhas. Unidade I:

Módulo: PYTHON. Felipe Oliveira

Estrutura de Dados: Aula 3 - Linguagem C

Algoritmos e Estruturas de Dados 2005/2006

Princípios de Desenvolvimento de Algoritmos MAC122

ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS

Operador in e Caracteres

UFSC-CTC-INE INE Estruturas de Dados. Pilhas. Prof. Ronaldo S. Mello 2002/2. Pilha

Linguagens de Programação Aula 14

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

Ambientação com a Sintaxe de Java: parte 1

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

# Estrutura de Dados # Aula 06 Pilhas Estáticas. Prof. Leinylson Fontinele Pereira

Linguagens de Programação I

Processamento da Informação

Notações: in, pré e posfixada

Pseudolinguagem (ou Portugol) Profº Elton Rodrigo

3. Linguagem de Programação C

Algoritmos e Estruturas de Dados

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

Fundamentos de Programação

Estrutura de dados - Listas Encadeadas

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

INF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin

ICET CURSO: Ciência da Computação e Sistemas de Informação (Estrutura de Dados) Estudos Disciplinares Campus: Data: / / Nome:

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

3.2.2 Pilha (LIFO - last in, first out) - Inserção e remoção apenas no final da lista.

Introdução à Computação MAC0110

LP II Estrutura de Dados

Pilhas e Filas. Prof. Walteno Martins Parreira Júnior.

Árvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE

Estrutura de Condição, Escolha e Repetição

Cursos: Análise, Ciência da Computação e Sistemas de Informação Laboratório I - Prof. Aníbal Notas de aula 2 SISTEMAS NUMÉRICOS

K&R: Capitulo 2 IAED, 2012/2013

Fundamentos da Programação

SCC Algoritmos e Estruturas de Dados I

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

ESTRUTURA DE DADOS PILHA

INFORMÁTICA APLICADA AULA 03 LINGUAGEM DE PROGRAMAÇÃO C++

Slide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.

Computação I - Python Aula 1 - Teórica: Manipulação de Strings, Tuplas e Listas

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Estrutura de Dados II. Prof. Sérgio Portari

LO GICA E TE CNICA DE PROGRAMAC ÃO. TÁSSIO JOSÉ GONÇALVES GOMES

Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP

Aula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias

Operadores. Tipo de operadores. Aritméticos. Relacionais. Lógicos. Bit a bit. Cálculos aritméticos: soma, subtracção, multiplicação, divisão, etc.

Lista de Exercício de Linguagens de Programação Prog. Funcional

Estruturas de Dados Encadeadas

ESTRUTURA DE DADOS (TCC )

Fundamentos de Programação

Algoritmos e Estrutura de Dados Aula 04 Strings em Python parte 1

Transcrição:

Algoritmos e Estrutura de Dados Aula 08 Pilhas Profa. Alana Oliveira e Prof. Davi Viana alanaslz@gmail.com e davi.viana@lsdi.ufma.br Se não entender, pergunte!

Dados e Tipos de Dados Um dado é uma informação que um algoritmo recebe ou manipula; Exemplos de dados são: Nomes, datas, valores (preços, notas, etc.) e condições (verdadeiro e falso) Todo dado é de um certo tipo que define sua natureza (p. ex., um nome é diferente de um valor numérico), identificando seu uso, e define as operações que podem ser realizadas com o dado; Por exemplo, podemos somar dois valores numéricos, mas não podemos somar um número e uma frase. 3 Dados e Tipos de Dados Em Python: Tipos de dados atômicos: int e float : +, - *, /, % bool: and, or, not Tipos de dados de coleção: Listas : criar, acessar, modificar, etc Tuplas: criar, acessar, etc String: criar, acessar, concatenar, etc Dicionários: criar, acessar, modificar, etc 4

/3/7 Estrutura de Dados (ED) Definição: organização de dados e operações (algoritmos) que podem ser aplicados sobres esses dados como forma de apoio à solução de problemas. Exemplos de EDs: Pilhas Filas Listas lineares Árvores 5 Profa. Alana O liveira, EC P / UFM A Pilhas Definição Uma pilha é uma coleção ordenada de zero ou mais itens, de um mesmo tipo ou não, tal que suas operações principais são realizadas na mesma extremidade, denominada topo. "Designed by Asierrom ero / Freepik" 3

Pilhas Definição As operações básicas das pilhas são: Empilhar: insere um novo item no topo da estrutura. Desempilhar: remove o item do topo da estrutura 7 Pilhas Definição As operações Empilhar / Desempilhar seguem a ordem: o último item a entrar no conjunto é o primeiro item a sair: Last in / First out (LIFO) Último a entrar / Primeiro a sair topo 4 7 8 4

Pilhas Comportamento Empilhar: 3 4 5 5 4 4 3 3 3 Desempilhar: 5 4 3 5 4 3 4 3 9 3 Pilhas: Conversão Decimal Binário Converta o número 3 (0) para binário Método das divisões sucessivas Observação: Percebam o comportamento de pilha: o último resto a ser calculado é o primeiro resto utilizado na composição do número binário. 0 5

Pilhas: Chamada de Função Controle de chamada de funções Observação: Percebam o comportamento de pilha: a última função a ser chamada é a primeira função a ter a execução completada. Pilhas: Cotidiano Undo/Redo no editor de textos Ir para frente / ir para a trás no navegador 6

Pilhas: Operações As operações comumente utilizadas em pilhas são: Empilhar: insere um novo item no topo da estrutura. Desempilhar: remove o item do topo da estrutura, retornando-o. Vazia: verifica se a pilha está vazia. Topo: retorna o item no topo da estrutura, sem removê-lo. Tamanho: retorna a quantidade de item na estrutura. 3 Pilhas: Implementação por meio de listas em Python # ou return (len(self.items) == 0) 4 7

Pilhas: Implementação por meio de listas em Python 5 Pilhas: Avaliação de Expressões aritméticas Notação Infixa: A+B*C É ambígua Necessidade de precedência de operadores ou do uso de parênteses Notação Prefixa (Polonesa): -*AB/CD = (A*B)-(C/D) Operadores precedem operandos Dispensa o uso de parênteses Notação Posfixa (Polonesa reversa): AB*CD/- = (A*B)-(C/D) Operadores sucedem operandos Dispensa o uso de parênteses 6 8

Pilhas: Avaliação de Expressões aritméticas Expressões na notação Posfixa podem ser avaliadas utilizando uma pilha. A expressão é avaliada da esquerda para a direita. Os operandos são empilhados. Os operadores fazem com que dois operandos sejam desempilhados, o cálculo seja realizado e o resultado seja empilhado. 7 Pilhas: Avaliação de Expressões aritméticas Expressões na notação Posfixa podem ser avaliadas utilizando uma pilha. Exemplo: 6/34*+3- Observação: Neste exemplo, o topo da pilha é representado pela posição mais à esquerda de P. 8 9

Pilhas: Avaliação de Expressões aritméticas Expressões na notação Infixa podem ser convertidas para a notação Posfixa utilizando uma pilha. 9 Pilhas: Avaliação de Expressões aritméticas Expressões na notação Infixa podem ser convertidas para a notação Posfixa utilizando uma pilha. Exemplo: A*(B+C)/D Observação: Neste exemplo, o topo da pilha é representado pela posição mais à esquerda de P. 0 0

Exercício Escreva uma função em Python que receba uma sequência de parênteses e colchetes e retorne True se ela está bem formada ou False, caso contrário. Bem formada! Mal formada! Escreva um programa em Python que leia uma expressão na notação Posfixa e realize sua avaliação. Escreva um programa em Python que leia uma expressão em notação Infixa e converta-a para Posfixa. Material Complementar http://www3.ifrn.edu.br/~jurandy/fdp/doc/ aprenda-python/capitulo_8.html http://interactivepython.org/runestone/stat ic/pythonds/basicds/implementingastac kinpython.html