Listas Lineares Pilhas

Juliana Jenny Kolb

teste seu conhecimento

Home > Simulados on-line  > Questões de Concursos > Tecnologia da Informação (TI) Algoritmos e Estruturas de Dados Estruturas de Dados

Listas Lineares Pilhas

Pilhas são listas lineares com disciplina de acesso FILO (first-in, last-out, ou, o primeiro a entrar é o último a sair). Da mesma forma que as filas, sua principal  aplicação é o armazenamento de dados em que é importante preservar a ordem (neste caso, FILO) de entradas e saídas.

A pilha armazena apenas a posição de uma de suas extremidades (chamada topo), que é o único local onde são realizadas todas as operações de entrada e saída. A operação de entrada de dados (sempre no topo da pilha ) é chamada push e a retirada (também sempre do topo) é chamada pop.

A implementação pode ser estática (usando um vetor simples) ou dinâmica (com ponteiros) sem diferenças significativas em termos de eficiência, uma vez que a estrutura só admite estas operações no topo da estrutura.

Ver: Implementação do conceito de LIFO (+)

Implementação dinâmica

typedef struct estrutura
{

TIPOCHAVE chave;
estrutura *prox;

} NO;

typedef struct
{

NO* topo;

} Pdinam;

// Inicialização da pilha dinâmica
void inicializarPdinam(Pdinam *p)
{

p->topo = NULL;

}

// Quantos elementos existem
int tamanhoPdinam(Pdinam p)
{

NO* p1 = p.topo;
int tam = 0;
while(p1)

{

tam++;
p1 = p1->prox;

}

return(tam);

}

// Inserir item no topo
void push(TIPOCHAVE ch, Pdinam *p)
{

NO* novo = (NO*) malloc(sizeof(NO));
novo->chave = ch;
novo->prox = p->topo;
p->topo = novo;

}

// Retirar a chave do topo ou -1
TIPOCHAVE pop(Pdinam *p)
{

NO* aux;
TIPOCHAVE ch;
if(!p->topo) return(-1);
aux = p->topo;
ch = aux->chave;
p->topo = p->topo->prox;
free(aux);
return(ch);

}

 

Referência Bibliográfica

Honda, Willian Yukio; Paraboni, Ivandré. ACH2023 – ALGORITMOS E
ESTRUTURAS DE DADOS I. Trabalho Acadêmico, 2011.

Sites Pequisados

www.devmedia.com.br

Deixe uma resposta