Juliana Jenny Kolb
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