DEV Community

Alex Reis
Alex Reis

Posted on

1 1 1

Estruturas de Dados: Pilha

É um tipo especial de lista linear, com a restrição que inserções e remoções ocorrem na mesma extremidade.

Alocação Sequencial

Temos um ponteiro chamado topo para indicar o topo da pilha,ou seja, o elemento da extremidade. Os algoritmos abaixo implementam inserção e remoção na pilha, considerando uma mmória de M posições.

Inserção na pilha

    se topo != M então
        topo := topo+1
        P[topo] := novo-valor
    senão *overflow*
Enter fullscreen mode Exit fullscreen mode

Remoção na pilha

    se topo != 0 então
        valor-recuperado := P[topo]
        topo := topo - 1
    senão *underflow*
Enter fullscreen mode Exit fullscreen mode

A complexidade das operações é O(1).

Alocação Encadeada

Considerando-se listas simplesmente encadeadas (sem nó-cabeça), o topo da pilha é o primeiro nó da lista, apontado por uma variável ponteiro topo. Se a pilha estiver vazia então topo = nulo.

Inserção

    // alocar pt
    pt->.info := novo-valor
    pt->.prox := topo
    topo := pt
Enter fullscreen mode Exit fullscreen mode

Remoção

    se topo != nulo então
        pt := topo
        topo := topo->.prox
        valor-recuperado := pt->.info
        // desalocar pt
    senão *underflow*
Enter fullscreen mode Exit fullscreen mode

As complexidades dessas operações são constantes, ou seja, O(1).

Image of Wix Studio

2025: Your year to build apps that sell

Dive into hands-on resources and actionable strategies designed to help you build and sell apps on the Wix App Market.

Get started

Top comments (2)

Collapse
 
miguelneto profile image
Miguel Neto

Bem informativo e direto :) Parábens!

Collapse
 
alexreis profile image
Alex Reis

Obrigado cara!

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay