Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SPL e Suas Estruturas de Dados: Como Funcionam? - PHP Community Summit 2018

SPL e Suas Estruturas de Dados: Como Funcionam? - PHP Community Summit 2018

Slides da palestra realizada no PHP Community Summit 2018, em São Paulo.
Código usado na palestra: https://github.com/devdrops/spl-data-structures

Davi Marcondes Moreira

September 14, 2018
Tweet

More Decks by Davi Marcondes Moreira

Other Decks in Programming

Transcript

  1. SPL e Suas
    Estruturas de
    Dados:
    Como
    Funcionam?
    2018-09-14 @
    PHP Community Summit
    Davi Marcondes Moreira
    @devdrops

    View full-size slide

  2. Introdução

    View full-size slide

  3. Davi Marcondes Moreira
    Desenvolvedor de Software
    @ Pagar.me
    @devdrops
    Doido por estruturas de dados
    >_ whois

    View full-size slide

  4. Por Quê Falar de
    SPL?

    View full-size slide

  5. Photo by Clem Onojeghuo on Unsplash

    View full-size slide

  6. Vamos às classes!

    View full-size slide

  7. SplDoublyLinkedList
    AKA lista duplamente encadeada
    (cada nó conhece seus “vizinhos”)

    View full-size slide

  8. SplDoublyLinkedList
    AKA lista duplamente encadeada
    (cada nó conhece seus “vizinhos”)
    SplStack (pilha)

    View full-size slide

  9. SplDoublyLinkedList
    AKA lista duplamente encadeada
    (cada nó conhece seus “vizinhos”)
    SplStack (pilha)
    SplQueue (fila)

    View full-size slide

  10. SplDoublyLinkedList
    AKA lista duplamente encadeada
    (cada nó conhece seus “vizinhos”)
    SplStack (pilha)
    SplQueue (fila)
    São estruturas que respeitam a ordem
    inserida dos dados.

    View full-size slide

  11. SplHeap
    AKA árvore
    (realiza comparações para ajustar seus nós)

    View full-size slide

  12. SplHeap
    AKA árvore
    (realiza comparações para ajustar seus nós)
    SplMaxHeap (do maior para o menor)

    View full-size slide

  13. SplHeap
    AKA árvore
    (realiza comparações para ajustar seus nós)
    SplMaxHeap (do maior para o menor)
    SplMinHeap (do menor para o maior)

    View full-size slide

  14. SplHeap
    AKA árvore
    (realiza comparações para ajustar seus nós)
    SplMaxHeap (do maior para o menor)
    SplMinHeap (do menor para o maior)
    SplPriorityQueue (fila + priorização, possui
    internamente uma SplMaxHeap)

    View full-size slide

  15. SplHeap
    AKA árvore
    (realiza comparações para ajustar seus nós)
    SplMaxHeap (do maior para o menor)
    SplMinHeap (do menor para o maior)
    SplPriorityQueue (fila + priorização, possui
    internamente uma SplMaxHeap)
    Se organiza a cada elemento inserido.

    View full-size slide

  16. SplFixedArray
    AKA array de tamanho fixo
    (igual um array comum, porém
    oferecendo limites)

    View full-size slide

  17. SplFixedArray
    AKA array de tamanho fixo
    (igual um array comum, porém
    oferecendo limites)
    Índices são somente valores inteiros
    Permite tornar arrays normais em fixos, e
    vice versa.

    View full-size slide

  18. Cada estrutura, a 80km/h,
    quem ganha? :D

    View full-size slide

  19. Podemos concluir que
    - Foram uma evolução na linguagem
    - Aspectos interessantes de cada uma
    - Podem ser aplicadas no nosso dia a dia - com cautela
    - Trazem muita responsabilidade ao nosso código
    - Em caso de dúvida, use um array antes

    View full-size slide

  20. Referências

    View full-size slide

  21. Para se aprofundar mais
    - http://php.net/manual/en/spl.datastructures.php
    - https://hotexamples.com/
    - https://www.phparch.com/books/mastering-the-spl-library/
    - https://github.com/php-ds

    View full-size slide

  22. Muito
    obrigado!
    =D
    @devdrops
    devdrops.me/about
    https://github.com/devdrops/
    spl-data-structures

    View full-size slide