Linked list implementation of stack

Instead of using array, we can also use linked list to implement stack. A lista ligada aloca a memória dinamicamente. No entanto, a complexidade de tempo em ambos os cenários é a mesma para todas as operações, ou seja, push, pop e peek.

na implementação da lista ligada da pilha, os nós são mantidos não contiguosamente na memória. Cada nó contém um ponteiro para o seu nó sucessor imediato na pilha. Stack é dito ser overflown se o espaço deixado no heap de memória não é suficiente para criar um nó.

DS Linked list implementation stack

the top most node in the stack always contains null in its address field. Vamos discutir a forma como, cada operação é realizada na implementação de lista vinculada da pilha.

adicionar um nó à pilha (Push operation)

adicionar um nó à pilha é referido como push operation. Empurrar um elemento para uma pilha na implementação de lista vinculada é diferente da de uma implementação de array. A fim de empurrar um elemento para a pilha, os seguintes passos estão envolvidos.

  1. criar um nó primeiro e alocar memória a ele.
  2. se a lista estiver vazia, então o item deve ser empurrado como o nó inicial da lista. Isto inclui atribuir valor à parte de dados do nó e atribuir null à parte de endereço do nó.
  3. se já existem alguns nós na lista, então temos que adicionar o novo elemento no início da lista (para não violar a propriedade da pilha). Para este propósito, atribua o endereço do elemento inicial ao campo de endereço do novo nó e faça o novo nó, o nó inicial da lista.
  4. Tempo de Complexidade : o(1)

    DS lista Ligada implementação de pilha

    C implementação :

    Exclusão de um nó da pilha (POP operação)

    Exclusão de um nó a partir do topo da pilha é conhecido como operação pop. A exclusão de um nó da implementação da lista vinculada da pilha é diferente da implementação da matriz. A fim de pop um elemento da pilha, devemos seguir os seguintes passos :

    1. Verificar a condição de underflow: A condição de underflow ocorre quando tentamos pop, já pilha vazia. A pilha ficará vazia se o ponteiro principal da lista apontar para nulo.
    2. Ajustar o ponteiro de cabeça de acordo: Na pilha, os elementos são exibidos, apenas de um lado, portanto, o valor armazenado no ponteiro de cabeça deve ser excluído e o nó deve ser liberada. O nó seguinte do nó da cabeça torna-se agora o nó da cabeça.

    Complexidade Temporal : s(n)

    C implementação

    Apresentar os nós (Poligonal)

    Exibir todos os nós de uma pilha precisa percorrer todos os nós da lista ligada organizado na forma de pilha. Para isso, temos de seguir os seguintes passos.

    1. Copie o ponteiro da cabeça para um ponteiro temporário.
    2. mova o ponteiro temporário através de todos os nós da lista e imprime o campo de valores ligado a cada nó.

    Complexidade Temporal : o (n)

    C implementação

    Menu impulsionado programa em C implementação de todas as operações de pilha usando a lista ligada:

You might also like

Deixe uma resposta

O seu endereço de email não será publicado.