SlideShare uma empresa Scribd logo
Opção 1 Para adicionar



Antonio Álvaro Oliveira da Silva
    Wallysson Ferreira Araruna
   Tem como objetivo fazer uma breve apresentação
das características da linguagem de programação
Python e fazer uma introdução a estrutura de dados
da referida linguagem.




           Introdução a Estrutura de Dados em Python
                                                       2
   Uma Linguagem de Programação de fonte aberta,
    ou   seja,     Software              Livre:         Python   Software
    Foundation e orientada a objetos.
   É de fácil aprendizado.
   Linguagem de Programação de Alto Nivel.
   Sua Sintaxe elegante e tipagem dinâmica e forte.
   Funciona na maioria dos sistemas operacionais.

            Introdução a Estrutura de Dados em Python
                                                                            3
   Os Blocos de comandos são delimitados por meio
    da indentação.
   Não precisa ser compilado para a sua execução, o
    programa é interpretado em tempo de execução.
   A declaração de variáveis pode ocorrer em
    qualquer ponto do programa, no entanto deve ser
    utilizada a variavel.

             Introdução a Estrutura de Dados em Python
                                                         4
 Tiposde Dados:
   Os tipos de dados podemos definir em
     dois tipos os simples e compostos.


                                Tipos de              Compostos
    Simples                      Dados



   Numérico e                                           Lista,Tupla ,
     Texto                                               Dicionário,
                                                        Filas e Pilhas
          Introdução a Estrutura de Dados em Python
                                                                         5
   Lista:
        E uma seqüencia de valores de qualquer tipo,são mutáveis podendo ser
                           alternadas a qualquer momento.
   Tupla:
       É um tipo de lista com objetivo de armazenar um conjunto de elementos
                             acessíveis pelo índice inteiro.
                          Diferentes da lista ,são imutáveis.

   Dicionário:
              São conhecidos também como “vetores de associação”,
               
tendo como diferença das listas na sua indexação, pois ela é feita através de chaves.

   Classe:
         Estrutura fundamental para definir objetos.




                   Introdução a Estrutura de Dados em Python
                                                                                        6
 Def.:
  class Ponto: # criando a classe, criar um novo tipo de dado,
  ponto.
      pass # o comando não tem nenhum efeito no código.
                # membros desse novo tipo são chamados instancia
     deste      tipo ou objetos.
                # criar uma nova instancia é instanciar.




             Introdução a Estrutura de Dados em Python
                                                                   7
final = Ponto( ) # A variável final contém uma referencia a um
novo objeto da classe Ponto.

final.x = 3.0 # adicionando novos dados a um objeto.
final.y = 4.0 # esse item de dados é o seu atributo.
                 # A variável final refere-se a um objeto ponto que
contem
                 # dois atributos e cada atributo referencia a um
numero.
Print final.y
Wall = final.x          # acessando um item de dados de um objeto e
                                  # atribuindo a variável wall.
# Diagrama

              Introdução a Estrutura de Dados em Python
                                                                      8
def mostrarPonto(p):
            print „ („ +str (p.x)+ ‟ , ‟ +str(p.y)+‟) ‟

# A função mostrarPonto pega o ponto (p) como um argumento e mostra-o no formato (x,y)

# Verificar se duas referências se referem ao mesmo objeto:
class Ponto:
  pass
p1 = Ponto() #Mesmo que p1 e p2 contenham os mesmos valores , não presentam o mesmo
p1.x = 10.0 #objeto
p1.y = 5.0

p2 = Ponto()
p2.x = 10.0
p2.y = 5.0
print p1 == p2 #FALSE
p2 = p1 #se atribuímos p1 a p2 então as duas variáveis são o mesmo objeto

print p1 == p2 #TRUE
#chama-se de igualdade rasa, quando compara somente as referencias e não os conteúdos dos
objetos
def mostrarPonto(p1, p2):
  return (p1.x == p2.x) and (p1.y == p2.y)
#comparar o conteúdo dos objetos, igualdade profunda.
                        Introdução a Estrutura de Dados em Python
                                                                                            9
class Detalhes:
  pass

wall = Detalhes()
wall.altura = 1.77
wall.peso = 90

wall.vida = Detalhes() # um novo objeto dentro de outro objeto.
wall.vida.profissional = "Otimo"
wall.vida.amorosa = "ruim"

#Diagrama

#mudando o estado de um objeto.

def mudarEstado(obj, alt, peso, trab, amor):
  obj.altura = alt
  obj.peso = peso
  obj.vida.profissional = trab
  obj.vida.profissional = amor

def exibi(algo): #o parâmetro „algo‟ é apelido para „wall „e qualquer mudança feita e „algo‟ afeta “bob”
  print algo.altura
  print algo.peso
  print algo.vida.profissional
  print algo.vida.amorosa
  print

exibi(wall)
mudarEstado(wall, 1.50, 70, "ruim", "altas")
exibi(wall)              Introdução a Estrutura de Dados em Python
                                                                                                           10
import copy
p3 = Ponto()
p3.x = 24
p3.y = 44
p4 = copy.copy(p3)
print
print
print "p4 == p3", p4 == p3
print mostrarPonto(p3,p4)
#para copiar um simples objeto sem nenhum objeto
embutido, isto é shallow copia.

          Introdução a Estrutura de Dados em Python
                                                      11
Mas caso o objeto contenha uma referencia para outro objeto, o método copy não ira
executar corretamente.
#Diagrama
Solução é usar metodo deepcopy que copia todo e qualuqer objeto embutido em um
objeto.
wall2 = copy.deepcopy(wall)
Agora wall2 e wall são objetos completamente separados com os mesmo conteúdos .
def mudar(obj, alt, peso, trab, amor):
  p1 = copy.deepcopy(obj)
  p1.altura = alt
  p1.peso = peso
  p1.vida.profissional = trab
  p1.vida.profissional = amor
  return p1

wall2 = mudar(wall, 1.50, 70, "ruim", "altas")
exibi(wall2)
exibi(wall)
                  Introdução a Estrutura de Dados em Python
                                                                                     12
 Funções  Pura = Não modifica nenhum
  dos objetos que são passados como
  parâmetros e não tem efeito colateral de
  imprimir um valor ou pegar entrada do
  usuário.
 Funções Modificadoras = funções que
  modificar um ou mais dos objetos que
  ela recebe como parâmetro.

        Introdução a Estrutura de Dados em Python
                                                    13
 Métodos são como funções com duas
 diferenças:
 • Métodos são definidos dentro da definição de
   uma classe para tornar explicita a relação entre
   a classe e o método.
 • A sintaxe para a chamada do método é diferente
   da sintaxe para a chamada de uma função.




        Introdução a Estrutura de Dados em Python
                                                      14
Introdução a Estrutura de Dados em Python
                                            15
   Também chamado de construtor, é um método especial que
    é invocado automaticamente quando um novo objeto é
    criado e que inicializa os atributos deste objetos.
class Carta:
  def __init__(self, naipe=0, posicao=0): #fornecemos um
método de
       #inicialização
    self.naipe = naipe # que recebe um parâmetro opcional
para                   #cada atributo.
    self.posicao = posicao

tresDePaus = Carta(0,3) #criando um objeto



             Introdução a Estrutura de Dados em Python
                                                             16
Um atributo de classe é definido fora de qualquer método, assim ele pode acessado por
quaisquer método da classe.
class Carta:
  listaDeNaipes = ["paus","Ouro","Copas","Espadas"]
  listaDePosicoes =
["nada","Ás","2","3","4","5","6","7","8","9","10","Valete","Rainha","Rei"]
  def __init__(self, naipe=0, posicao=0): #fornecemos um metodo de inicialização
    self.naipe = naipe # que recebe um parametro opcional para cada atributo.
    self.posicao = posicao
  def __str__(self):
    return(self.listaDePosicoes[self.posicao] + " de "+self.listaDeNaipes[self.naipe])


carta1 = Carta(1,11) #criando um objeto
print carta1



                  Introdução a Estrutura de Dados em Python
                                                                                         17
 Uma  lista (list) em Python tem como sintaxe uma
  seqüência de valores separados por vírgula e
  entre [].
 Uma coleção Heterogêneas de Objeto,ou seja, os
  valores não precisam ser do mesmo tipo.
 São mutáveis em Python.

                             Sintaxe:
                      Lista=[1,2,3,4]

         Introdução a Estrutura de Dados em Python
                                                     18
Introdução a Estrutura de Dados em Python
                                            19
Introdução a Estrutura de Dados em Python
                                            20
 Quem    Nunca enfrentou Uma Fila?
 Na programação é mesma lógica, o primeiro
  elemento a entrar em uma fila será o primeiro a
  sair conhecido como sigla de first-in-first-out ou
  FIFO.
 Os elementos são utilizados,sequencialmente,
  na ordem que são armazenados.
 Fila não é nativa de Python, mas podemos
  utilizar as Listas.
 Para Adicionar usa-se append().
 Para remover usa-se pop() com Índice 0.
          Introdução a Estrutura de Dados em Python
                                                       21
As Filas (queues) são conjuntos de elementos é
adicionado em extremidade e removida em outra.


          Seqüência armazenada em Fila




 Novos Elementos                            O primeiro Elemento a
 São Armazenados                            Entrar Será o Primeiro
                                            Elemento a Sair
           Introdução a Estrutura de Dados em Python
                                                                     22
LEMBRETE: O TDA ou tipo
                                                        abstrato de dado especifica
                                                        um conjunto de operações (ou
                                                        métodos) e a semântica das
A Fila existe dois tipos TDA, a                         operações (o que elas fazem),
fila e fila por prioridade.                             mas não especifica a
                                                        implementação das
                                                        operações. Isto é o que o faz
    A fila está na política de                         abstrato

 enfileiramento,ou seja, a FIFO.



  A fila por prioridade o próprio
  nome já diz, os elementos que
tem prioridade são atendidos por
              primeiro.


            Introdução a Estrutura de Dados em Python
                                                                                    23
 __init__: Inicializar
                      uma nova fila vazia.
 Insert: Adicionar um novo item à fila.
 remove: Remover e retornar um item da
  fila. O item retornado é o que foi
  adicionado primeiro.
 isEmpty: Checar se a fila está vazia.




         Introdução a Estrutura de Dados em Python
                                                     24
 As  Pilhas são conhecidas como LIFO(last
 in, first out – último a entrar) ou PEPS.
     O item adicionado por último é o primeiro a ser
                        removido.
 Uma  pilha é uma coleção que contem
  múltiplos elementos.
 O exemplo mais conhecido é de uma
  pilha de pratos.


           Introdução a Estrutura de Dados em Python
                                                        25
Novos                                            Último
 Elementos                                      elemento que
   sendo                                        entrou será o
 adicionado                                       primeiro a
  na Pilha.                                          sair.




Sequencia de
Armazenament
o na Pilha




         Introdução a Estrutura de Dados em Python
                                                                26
 __init__: Inicializa uma nova pilha vazia.
 push : Adiciona um novo item na pilha
 pop : Remove um ítem da pilha e o
  retorna, O ítem que é retornado é
  sempre o último adicionado.
 isEmpty :Verifica se a pilha está vazia.




         Introdução a Estrutura de Dados em Python
                                                     27
 “É
             uma estrutura de dados
      bidimensional, não-linear, que possui
           propriedades especiais”
                                                         Puga & Risseti,2009.
   Admite muitas operações de conjuntos dinâmicos:
                           Pesquisa
                           Inserção
     Árvores são
 estruturas de dados       Remoção
recursivas já que elas    Ordenação
    são definidas       E entre outros.
  recursivamente.


             Introdução a Estrutura de Dados em Python
                                                                                28
 São Uteis para Implementação de algoritmos que
necessitam de estruturas hierárquicas.
Por exemplo:
     Diretórios e Pasta de Arquivos de Um Computador.




          Introdução a Estrutura de Dados em Python
                                                        30
 No topo das árvores é chamada de RAIZ,
  e as outras células são chamadas de
  GALHO e nas pontas contendo as
  referencias vazias são chamadas
  FOLHAS.
 Uma célula superior pode ser chamada
  de PAI e as células que se refere a ele
  são FILHOS, e as células com o mesmo
  pai são considerados IRMÃOS.
        Introdução a Estrutura de Dados em Python
                                                    31
 O nó 8: É a Raiz
                     Os nós 3 ,10,14 e 6: São
                     chamadas de Pai
                      Os nós 1,4,7 e 13: São
                     Filhos




Introdução a Estrutura de Dados em Python
                                                 32
   Puga Sandra,Risseti Gerson.Lógica de Programação e Estruturas
    de Dados Com aplicações em Java.Ed. Person Prentice Hall,2009,
    2ªedicão.
   Árvore Binária de Busca. Disponível em :
    <http://pt.wikipedia.org/wiki/%C3%81rvore_bin%C3%A1ria_de_bu
    sca >Acesso No dia 17 de Julho de 2012 ás 14h:58min.
   Rossum Van Guido.Tutorial Python Release 2.4.2.Disponivel em:
    <www.python.org.br/wiki/DocumentacaoPython?...python24.pdf>A
    cesso No dia 13 de Julho de 2012 ás 9h:10min.
   Capitulo 18 : Pilhas. Disponível
    em:<http://py.franciscosouza.net/capitulo_18.html>. Acesso No dia
    17 de Julho de 2012 ás 15h:10min.
   Capitulo 19 : Filas. Disponível
    em:<http://py.franciscosouza.net/capitulo_19.html>. Acesso No dia
    17 de Julho de 2012 ás 15h:00min.
   Capitulo 20 : Árvores. Disponível
    em:<http://py.franciscosouza.net/capitulo_20.html>. Acesso No dia
    17 de Julho de 2012 ás 15h:20min.
              Introdução a Estrutura de Dados em Python
                                                                        33
o Borges Eduardo Luiz.Python Para Desenvolvedores. Rio de
Janeiro, Edição do Autor, 2009.




             Introdução a Estrutura de Dados em Python
                                                            34
Introdução a Estrutura de Dados em Python
                                            35
Introdução a Estrutura de Dados em Python
                                            36
Obrigado pela
  Atenção!

 Introdução a Estrutura de Dados em Python
                                             37

Mais conteúdo relacionado

Mais procurados

Aprendendo a Usar o Netbeans
Aprendendo a Usar o NetbeansAprendendo a Usar o Netbeans
Aprendendo a Usar o Netbeans
Tiago Antônio da Silva
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
Léo Dias
 
Introdução CSS
Introdução CSSIntrodução CSS
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
Marcos Castro
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
Regis Magalhães
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
Carlos Wagner Costa
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
Mariana Camargo
 
Curso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTMLCurso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTML
Rodrigo Bueno Santa Maria, BS, MBA
 
Python
PythonPython
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
Gemilson George
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
Gabriel Moura
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - Apresentação
Leinylson Fontinele
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
Elaine Cecília Gatto
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
vini_campos
 
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Leinylson Fontinele
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
antonio sérgio nogueira
 
Python
PythonPython
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Leinylson Fontinele
 
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasEstrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Leinylson Fontinele
 

Mais procurados (20)

Aprendendo a Usar o Netbeans
Aprendendo a Usar o NetbeansAprendendo a Usar o Netbeans
Aprendendo a Usar o Netbeans
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Introdução CSS
Introdução CSSIntrodução CSS
Introdução CSS
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Curso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTMLCurso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTML
 
Python
PythonPython
Python
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - Apresentação
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
Banco de Dados II Aula 12 - Gerenciamento de transação (controle de concorrên...
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
Python
PythonPython
Python
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
 
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasEstrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
 

Semelhante a Introdução a estruturas de dados em python

Python2.5.ppt
Python2.5.pptPython2.5.ppt
Python2.5.ppt
wildcat9335
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
lucianacmota
 
Classe integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doubleClasse integer-float-byte-short-long-double
Classe integer-float-byte-short-long-double
PAULO Moreira
 
Slide_Python.pdf
Slide_Python.pdfSlide_Python.pdf
Slide_Python.pdf
HevertonSCosta
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
ciceroclc
 
Resumão java
Resumão javaResumão java
Lista encadeada de inteiros
Lista encadeada de inteirosLista encadeada de inteiros
Lista encadeada de inteiros
Robson Eduardo
 
Pged 04
Pged 04Pged 04
Pged 04
samuelthiago
 
Pged 03
Pged 03Pged 03
Pged 03
samuelthiago
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Alvaro Oliveira
 
Lpiii dp-apostila
Lpiii dp-apostilaLpiii dp-apostila
Lpiii dp-apostila
Jonathan Henrique
 
Algoritmo e Estrutura de dados em C - Aula 01 - 2019
Algoritmo e Estrutura de dados em C - Aula 01 - 2019Algoritmo e Estrutura de dados em C - Aula 01 - 2019
Algoritmo e Estrutura de dados em C - Aula 01 - 2019
Eduardo S. Pereira
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
Diemesleno Souza Carvalho
 
Aula 13
Aula 13Aula 13
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Guilherme Garcia
 
Material_ Módulo 3_Python I.pptx.pdf - Python
Material_ Módulo 3_Python I.pptx.pdf - PythonMaterial_ Módulo 3_Python I.pptx.pdf - Python
Material_ Módulo 3_Python I.pptx.pdf - Python
LorrayneSilva26
 
Classes e Estrutura de Dados
Classes e Estrutura de DadosClasses e Estrutura de Dados
Classes e Estrutura de Dados
Tawã Lucindo Leal
 
Introdução a programação em python d2
Introdução a programação em python d2Introdução a programação em python d2
Introdução a programação em python d2
Moises de Paula
 
Ed1
Ed1Ed1
Top0
Top0Top0

Semelhante a Introdução a estruturas de dados em python (20)

Python2.5.ppt
Python2.5.pptPython2.5.ppt
Python2.5.ppt
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
Classe integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doubleClasse integer-float-byte-short-long-double
Classe integer-float-byte-short-long-double
 
Slide_Python.pdf
Slide_Python.pdfSlide_Python.pdf
Slide_Python.pdf
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
Resumão java
Resumão javaResumão java
Resumão java
 
Lista encadeada de inteiros
Lista encadeada de inteirosLista encadeada de inteiros
Lista encadeada de inteiros
 
Pged 04
Pged 04Pged 04
Pged 04
 
Pged 03
Pged 03Pged 03
Pged 03
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
Lpiii dp-apostila
Lpiii dp-apostilaLpiii dp-apostila
Lpiii dp-apostila
 
Algoritmo e Estrutura de dados em C - Aula 01 - 2019
Algoritmo e Estrutura de dados em C - Aula 01 - 2019Algoritmo e Estrutura de dados em C - Aula 01 - 2019
Algoritmo e Estrutura de dados em C - Aula 01 - 2019
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Aula 13
Aula 13Aula 13
Aula 13
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e Python
 
Material_ Módulo 3_Python I.pptx.pdf - Python
Material_ Módulo 3_Python I.pptx.pdf - PythonMaterial_ Módulo 3_Python I.pptx.pdf - Python
Material_ Módulo 3_Python I.pptx.pdf - Python
 
Classes e Estrutura de Dados
Classes e Estrutura de DadosClasses e Estrutura de Dados
Classes e Estrutura de Dados
 
Introdução a programação em python d2
Introdução a programação em python d2Introdução a programação em python d2
Introdução a programação em python d2
 
Ed1
Ed1Ed1
Ed1
 
Top0
Top0Top0
Top0
 

Mais de Alvaro Oliveira

Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
Alvaro Oliveira
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
Alvaro Oliveira
 
Servidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixServidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e Postfix
Alvaro Oliveira
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
Alvaro Oliveira
 
Padrao de projeto iterator
Padrao de projeto iteratorPadrao de projeto iterator
Padrao de projeto iterator
Alvaro Oliveira
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
Alvaro Oliveira
 

Mais de Alvaro Oliveira (6)

Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Servidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixServidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e Postfix
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Padrao de projeto iterator
Padrao de projeto iteratorPadrao de projeto iterator
Padrao de projeto iterator
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 

Último

REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
Eró Cunha
 
Pedagogia universitária em ciência e tecnologia
Pedagogia universitária em ciência e tecnologiaPedagogia universitária em ciência e tecnologia
Pedagogia universitária em ciência e tecnologia
Nertan Dias
 
Infografia | Resultados das Eleições Europeias 2024-2029
Infografia | Resultados das Eleições Europeias 2024-2029Infografia | Resultados das Eleições Europeias 2024-2029
Infografia | Resultados das Eleições Europeias 2024-2029
Centro Jacques Delors
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdfMAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
GracinhaSantos6
 
CD_B2_C_Criar e Editar Conteúdos Digitais_índice.pdf
CD_B2_C_Criar e Editar Conteúdos Digitais_índice.pdfCD_B2_C_Criar e Editar Conteúdos Digitais_índice.pdf
CD_B2_C_Criar e Editar Conteúdos Digitais_índice.pdf
Manuais Formação
 
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdfUFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
Manuais Formação
 
Vivendo a Arquitetura Salesforce - 02.pptx
Vivendo a Arquitetura Salesforce - 02.pptxVivendo a Arquitetura Salesforce - 02.pptx
Vivendo a Arquitetura Salesforce - 02.pptx
Mauricio Alexandre Silva
 
formação - 2º ano São José da Tapera ...
formação - 2º ano São José da Tapera ...formação - 2º ano São José da Tapera ...
formação - 2º ano São José da Tapera ...
JakiraCosta
 
AVALIAÇÃO PRESENCIAL 8º período pedagogia
AVALIAÇÃO PRESENCIAL 8º período  pedagogiaAVALIAÇÃO PRESENCIAL 8º período  pedagogia
AVALIAÇÃO PRESENCIAL 8º período pedagogia
KarollayneRodriguesV1
 
Tabela Funções Orgânicas.pdfnsknsknksnksn nkasn
Tabela Funções Orgânicas.pdfnsknsknksnksn nkasnTabela Funções Orgânicas.pdfnsknsknksnksn nkasn
Tabela Funções Orgânicas.pdfnsknsknksnksn nkasn
CarlosJean21
 
O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4
DouglasMoraes54
 
Atividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docxAtividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docx
MARCELARUBIAGAVA
 
Concurso FEMAR Resultado Final Etapa1-EmpregoscomEtapaII.pdf
Concurso FEMAR Resultado Final Etapa1-EmpregoscomEtapaII.pdfConcurso FEMAR Resultado Final Etapa1-EmpregoscomEtapaII.pdf
Concurso FEMAR Resultado Final Etapa1-EmpregoscomEtapaII.pdf
TathyLopes1
 
planejamento maternal 2 atualizado.pdf e
planejamento maternal 2 atualizado.pdf eplanejamento maternal 2 atualizado.pdf e
planejamento maternal 2 atualizado.pdf e
HelenStefany
 
cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..
MatheusSousa716350
 
Aula04A-Potencia em CA eletricidade USP.pdf
Aula04A-Potencia em CA eletricidade USP.pdfAula04A-Potencia em CA eletricidade USP.pdf
Aula04A-Potencia em CA eletricidade USP.pdf
vitorreissouzasilva
 
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
Manuais Formação
 
Loteria - Adição, subtração, multiplicação e divisão.
Loteria - Adição,  subtração,  multiplicação e divisão.Loteria - Adição,  subtração,  multiplicação e divisão.
Loteria - Adição, subtração, multiplicação e divisão.
Mary Alvarenga
 
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptxPsicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
TiagoLouro8
 

Último (20)

REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
 
Pedagogia universitária em ciência e tecnologia
Pedagogia universitária em ciência e tecnologiaPedagogia universitária em ciência e tecnologia
Pedagogia universitária em ciência e tecnologia
 
Infografia | Resultados das Eleições Europeias 2024-2029
Infografia | Resultados das Eleições Europeias 2024-2029Infografia | Resultados das Eleições Europeias 2024-2029
Infografia | Resultados das Eleições Europeias 2024-2029
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
 
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdfMAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
 
CD_B2_C_Criar e Editar Conteúdos Digitais_índice.pdf
CD_B2_C_Criar e Editar Conteúdos Digitais_índice.pdfCD_B2_C_Criar e Editar Conteúdos Digitais_índice.pdf
CD_B2_C_Criar e Editar Conteúdos Digitais_índice.pdf
 
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdfUFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
 
Vivendo a Arquitetura Salesforce - 02.pptx
Vivendo a Arquitetura Salesforce - 02.pptxVivendo a Arquitetura Salesforce - 02.pptx
Vivendo a Arquitetura Salesforce - 02.pptx
 
formação - 2º ano São José da Tapera ...
formação - 2º ano São José da Tapera ...formação - 2º ano São José da Tapera ...
formação - 2º ano São José da Tapera ...
 
AVALIAÇÃO PRESENCIAL 8º período pedagogia
AVALIAÇÃO PRESENCIAL 8º período  pedagogiaAVALIAÇÃO PRESENCIAL 8º período  pedagogia
AVALIAÇÃO PRESENCIAL 8º período pedagogia
 
Tabela Funções Orgânicas.pdfnsknsknksnksn nkasn
Tabela Funções Orgânicas.pdfnsknsknksnksn nkasnTabela Funções Orgânicas.pdfnsknsknksnksn nkasn
Tabela Funções Orgânicas.pdfnsknsknksnksn nkasn
 
O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4
 
Atividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docxAtividade Bio evolução e especiação .docx
Atividade Bio evolução e especiação .docx
 
Concurso FEMAR Resultado Final Etapa1-EmpregoscomEtapaII.pdf
Concurso FEMAR Resultado Final Etapa1-EmpregoscomEtapaII.pdfConcurso FEMAR Resultado Final Etapa1-EmpregoscomEtapaII.pdf
Concurso FEMAR Resultado Final Etapa1-EmpregoscomEtapaII.pdf
 
planejamento maternal 2 atualizado.pdf e
planejamento maternal 2 atualizado.pdf eplanejamento maternal 2 atualizado.pdf e
planejamento maternal 2 atualizado.pdf e
 
cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..
 
Aula04A-Potencia em CA eletricidade USP.pdf
Aula04A-Potencia em CA eletricidade USP.pdfAula04A-Potencia em CA eletricidade USP.pdf
Aula04A-Potencia em CA eletricidade USP.pdf
 
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
 
Loteria - Adição, subtração, multiplicação e divisão.
Loteria - Adição,  subtração,  multiplicação e divisão.Loteria - Adição,  subtração,  multiplicação e divisão.
Loteria - Adição, subtração, multiplicação e divisão.
 
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptxPsicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
 

Introdução a estruturas de dados em python

  • 1. Opção 1 Para adicionar Antonio Álvaro Oliveira da Silva Wallysson Ferreira Araruna
  • 2. Tem como objetivo fazer uma breve apresentação das características da linguagem de programação Python e fazer uma introdução a estrutura de dados da referida linguagem. Introdução a Estrutura de Dados em Python 2
  • 3. Uma Linguagem de Programação de fonte aberta, ou seja, Software Livre: Python Software Foundation e orientada a objetos.  É de fácil aprendizado.  Linguagem de Programação de Alto Nivel.  Sua Sintaxe elegante e tipagem dinâmica e forte.  Funciona na maioria dos sistemas operacionais. Introdução a Estrutura de Dados em Python 3
  • 4. Os Blocos de comandos são delimitados por meio da indentação.  Não precisa ser compilado para a sua execução, o programa é interpretado em tempo de execução.  A declaração de variáveis pode ocorrer em qualquer ponto do programa, no entanto deve ser utilizada a variavel. Introdução a Estrutura de Dados em Python 4
  • 5.  Tiposde Dados:  Os tipos de dados podemos definir em dois tipos os simples e compostos. Tipos de Compostos Simples Dados Numérico e Lista,Tupla , Texto Dicionário, Filas e Pilhas Introdução a Estrutura de Dados em Python 5
  • 6. Lista:  E uma seqüencia de valores de qualquer tipo,são mutáveis podendo ser alternadas a qualquer momento.  Tupla:  É um tipo de lista com objetivo de armazenar um conjunto de elementos acessíveis pelo índice inteiro.  Diferentes da lista ,são imutáveis.  Dicionário: São conhecidos também como “vetores de associação”,  tendo como diferença das listas na sua indexação, pois ela é feita através de chaves.  Classe:  Estrutura fundamental para definir objetos. Introdução a Estrutura de Dados em Python 6
  • 7.  Def.: class Ponto: # criando a classe, criar um novo tipo de dado, ponto. pass # o comando não tem nenhum efeito no código. # membros desse novo tipo são chamados instancia deste tipo ou objetos. # criar uma nova instancia é instanciar. Introdução a Estrutura de Dados em Python 7
  • 8. final = Ponto( ) # A variável final contém uma referencia a um novo objeto da classe Ponto. final.x = 3.0 # adicionando novos dados a um objeto. final.y = 4.0 # esse item de dados é o seu atributo. # A variável final refere-se a um objeto ponto que contem # dois atributos e cada atributo referencia a um numero. Print final.y Wall = final.x # acessando um item de dados de um objeto e # atribuindo a variável wall. # Diagrama Introdução a Estrutura de Dados em Python 8
  • 9. def mostrarPonto(p): print „ („ +str (p.x)+ ‟ , ‟ +str(p.y)+‟) ‟ # A função mostrarPonto pega o ponto (p) como um argumento e mostra-o no formato (x,y) # Verificar se duas referências se referem ao mesmo objeto: class Ponto: pass p1 = Ponto() #Mesmo que p1 e p2 contenham os mesmos valores , não presentam o mesmo p1.x = 10.0 #objeto p1.y = 5.0 p2 = Ponto() p2.x = 10.0 p2.y = 5.0 print p1 == p2 #FALSE p2 = p1 #se atribuímos p1 a p2 então as duas variáveis são o mesmo objeto print p1 == p2 #TRUE #chama-se de igualdade rasa, quando compara somente as referencias e não os conteúdos dos objetos def mostrarPonto(p1, p2): return (p1.x == p2.x) and (p1.y == p2.y) #comparar o conteúdo dos objetos, igualdade profunda. Introdução a Estrutura de Dados em Python 9
  • 10. class Detalhes: pass wall = Detalhes() wall.altura = 1.77 wall.peso = 90 wall.vida = Detalhes() # um novo objeto dentro de outro objeto. wall.vida.profissional = "Otimo" wall.vida.amorosa = "ruim" #Diagrama #mudando o estado de um objeto. def mudarEstado(obj, alt, peso, trab, amor): obj.altura = alt obj.peso = peso obj.vida.profissional = trab obj.vida.profissional = amor def exibi(algo): #o parâmetro „algo‟ é apelido para „wall „e qualquer mudança feita e „algo‟ afeta “bob” print algo.altura print algo.peso print algo.vida.profissional print algo.vida.amorosa print exibi(wall) mudarEstado(wall, 1.50, 70, "ruim", "altas") exibi(wall) Introdução a Estrutura de Dados em Python 10
  • 11. import copy p3 = Ponto() p3.x = 24 p3.y = 44 p4 = copy.copy(p3) print print print "p4 == p3", p4 == p3 print mostrarPonto(p3,p4) #para copiar um simples objeto sem nenhum objeto embutido, isto é shallow copia. Introdução a Estrutura de Dados em Python 11
  • 12. Mas caso o objeto contenha uma referencia para outro objeto, o método copy não ira executar corretamente. #Diagrama Solução é usar metodo deepcopy que copia todo e qualuqer objeto embutido em um objeto. wall2 = copy.deepcopy(wall) Agora wall2 e wall são objetos completamente separados com os mesmo conteúdos . def mudar(obj, alt, peso, trab, amor): p1 = copy.deepcopy(obj) p1.altura = alt p1.peso = peso p1.vida.profissional = trab p1.vida.profissional = amor return p1 wall2 = mudar(wall, 1.50, 70, "ruim", "altas") exibi(wall2) exibi(wall) Introdução a Estrutura de Dados em Python 12
  • 13.  Funções Pura = Não modifica nenhum dos objetos que são passados como parâmetros e não tem efeito colateral de imprimir um valor ou pegar entrada do usuário.  Funções Modificadoras = funções que modificar um ou mais dos objetos que ela recebe como parâmetro. Introdução a Estrutura de Dados em Python 13
  • 14.  Métodos são como funções com duas diferenças: • Métodos são definidos dentro da definição de uma classe para tornar explicita a relação entre a classe e o método. • A sintaxe para a chamada do método é diferente da sintaxe para a chamada de uma função. Introdução a Estrutura de Dados em Python 14
  • 15. Introdução a Estrutura de Dados em Python 15
  • 16. Também chamado de construtor, é um método especial que é invocado automaticamente quando um novo objeto é criado e que inicializa os atributos deste objetos. class Carta: def __init__(self, naipe=0, posicao=0): #fornecemos um método de #inicialização self.naipe = naipe # que recebe um parâmetro opcional para #cada atributo. self.posicao = posicao tresDePaus = Carta(0,3) #criando um objeto Introdução a Estrutura de Dados em Python 16
  • 17. Um atributo de classe é definido fora de qualquer método, assim ele pode acessado por quaisquer método da classe. class Carta: listaDeNaipes = ["paus","Ouro","Copas","Espadas"] listaDePosicoes = ["nada","Ás","2","3","4","5","6","7","8","9","10","Valete","Rainha","Rei"] def __init__(self, naipe=0, posicao=0): #fornecemos um metodo de inicialização self.naipe = naipe # que recebe um parametro opcional para cada atributo. self.posicao = posicao def __str__(self): return(self.listaDePosicoes[self.posicao] + " de "+self.listaDeNaipes[self.naipe]) carta1 = Carta(1,11) #criando um objeto print carta1 Introdução a Estrutura de Dados em Python 17
  • 18.  Uma lista (list) em Python tem como sintaxe uma seqüência de valores separados por vírgula e entre [].  Uma coleção Heterogêneas de Objeto,ou seja, os valores não precisam ser do mesmo tipo.  São mutáveis em Python. Sintaxe: Lista=[1,2,3,4] Introdução a Estrutura de Dados em Python 18
  • 19. Introdução a Estrutura de Dados em Python 19
  • 20. Introdução a Estrutura de Dados em Python 20
  • 21.  Quem Nunca enfrentou Uma Fila?  Na programação é mesma lógica, o primeiro elemento a entrar em uma fila será o primeiro a sair conhecido como sigla de first-in-first-out ou FIFO.  Os elementos são utilizados,sequencialmente, na ordem que são armazenados.  Fila não é nativa de Python, mas podemos utilizar as Listas.  Para Adicionar usa-se append().  Para remover usa-se pop() com Índice 0. Introdução a Estrutura de Dados em Python 21
  • 22. As Filas (queues) são conjuntos de elementos é adicionado em extremidade e removida em outra. Seqüência armazenada em Fila Novos Elementos O primeiro Elemento a São Armazenados Entrar Será o Primeiro Elemento a Sair Introdução a Estrutura de Dados em Python 22
  • 23. LEMBRETE: O TDA ou tipo abstrato de dado especifica um conjunto de operações (ou métodos) e a semântica das A Fila existe dois tipos TDA, a operações (o que elas fazem), fila e fila por prioridade. mas não especifica a implementação das operações. Isto é o que o faz A fila está na política de abstrato enfileiramento,ou seja, a FIFO. A fila por prioridade o próprio nome já diz, os elementos que tem prioridade são atendidos por primeiro. Introdução a Estrutura de Dados em Python 23
  • 24.  __init__: Inicializar uma nova fila vazia.  Insert: Adicionar um novo item à fila.  remove: Remover e retornar um item da fila. O item retornado é o que foi adicionado primeiro.  isEmpty: Checar se a fila está vazia. Introdução a Estrutura de Dados em Python 24
  • 25.  As Pilhas são conhecidas como LIFO(last in, first out – último a entrar) ou PEPS.  O item adicionado por último é o primeiro a ser removido.  Uma pilha é uma coleção que contem múltiplos elementos.  O exemplo mais conhecido é de uma pilha de pratos. Introdução a Estrutura de Dados em Python 25
  • 26. Novos Último Elementos elemento que sendo entrou será o adicionado primeiro a na Pilha. sair. Sequencia de Armazenament o na Pilha Introdução a Estrutura de Dados em Python 26
  • 27.  __init__: Inicializa uma nova pilha vazia.  push : Adiciona um novo item na pilha  pop : Remove um ítem da pilha e o retorna, O ítem que é retornado é sempre o último adicionado.  isEmpty :Verifica se a pilha está vazia. Introdução a Estrutura de Dados em Python 27
  • 28.  “É uma estrutura de dados bidimensional, não-linear, que possui propriedades especiais” Puga & Risseti,2009.  Admite muitas operações de conjuntos dinâmicos:  Pesquisa  Inserção Árvores são estruturas de dados  Remoção recursivas já que elas  Ordenação são definidas  E entre outros. recursivamente. Introdução a Estrutura de Dados em Python 28
  • 29.  São Uteis para Implementação de algoritmos que necessitam de estruturas hierárquicas. Por exemplo: Diretórios e Pasta de Arquivos de Um Computador. Introdução a Estrutura de Dados em Python 30
  • 30.  No topo das árvores é chamada de RAIZ, e as outras células são chamadas de GALHO e nas pontas contendo as referencias vazias são chamadas FOLHAS.  Uma célula superior pode ser chamada de PAI e as células que se refere a ele são FILHOS, e as células com o mesmo pai são considerados IRMÃOS. Introdução a Estrutura de Dados em Python 31
  • 31.  O nó 8: É a Raiz Os nós 3 ,10,14 e 6: São chamadas de Pai  Os nós 1,4,7 e 13: São Filhos Introdução a Estrutura de Dados em Python 32
  • 32. Puga Sandra,Risseti Gerson.Lógica de Programação e Estruturas de Dados Com aplicações em Java.Ed. Person Prentice Hall,2009, 2ªedicão.  Árvore Binária de Busca. Disponível em : <http://pt.wikipedia.org/wiki/%C3%81rvore_bin%C3%A1ria_de_bu sca >Acesso No dia 17 de Julho de 2012 ás 14h:58min.  Rossum Van Guido.Tutorial Python Release 2.4.2.Disponivel em: <www.python.org.br/wiki/DocumentacaoPython?...python24.pdf>A cesso No dia 13 de Julho de 2012 ás 9h:10min.  Capitulo 18 : Pilhas. Disponível em:<http://py.franciscosouza.net/capitulo_18.html>. Acesso No dia 17 de Julho de 2012 ás 15h:10min.  Capitulo 19 : Filas. Disponível em:<http://py.franciscosouza.net/capitulo_19.html>. Acesso No dia 17 de Julho de 2012 ás 15h:00min.  Capitulo 20 : Árvores. Disponível em:<http://py.franciscosouza.net/capitulo_20.html>. Acesso No dia 17 de Julho de 2012 ás 15h:20min. Introdução a Estrutura de Dados em Python 33
  • 33. o Borges Eduardo Luiz.Python Para Desenvolvedores. Rio de Janeiro, Edição do Autor, 2009. Introdução a Estrutura de Dados em Python 34
  • 34. Introdução a Estrutura de Dados em Python 35
  • 35. Introdução a Estrutura de Dados em Python 36
  • 36. Obrigado pela Atenção! Introdução a Estrutura de Dados em Python 37