Analista de sistemas
Introdução Uma pilha é uma lista de informações com operações especiais de acesso. O acesso aos elementos da pilha é feito sempre pela mesma extremidade, isto é, a extermidade escolhida é sempre usada para todas as operações, seja de inserção, eliminação ou pesquisa, e é chamada de TOPO. Esta regra é também conhecida como LIFO (Last In First Out). Um bom exemplo do funcionamento de uma pilha, é imaginar uma pilha de pratos: o prato do topo é o único que pode ser retirado e só podem ser colocados pratos no topo da pilha. Assim, para aceder ao último prato, deve-se antes retirar os que estão por cima dele. Para se aceder a um elemento da pilha, é necessário que ele esteja no TOPO, caso contrário, todos os elementos que estão antes dele devem ser retirados ("senão os pratos partem-se! :( ").
A pilha pode ser implementada por array's ou listas: 1-array:
2-lista ligada:
As operações que se podem realizar sobre uma pilha são:
Nome da função: | Descrição: | Código em C: | Empty | Verifica se a pilha está ou não vazia. | Empty() | Inic | Incializa a pilha. | Inic() | Pop | Retira o elemento que está no topo da pilha. | Pop() | Print | Mostra o conteúdo da pilha. | Print() | Push | Coloca um novo elemento na pilha. | Push() | Topo | Devolve o elemento que está no topo da pilha, ou, -1 se estiver vazia. | Topo() |
Exercícios:
1- Escreva um programa que implemente uma pilha. #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct sNO { int N; struct sNO *prox; } NO;
/*Inicaliza uma pilha para se poder começar a trabalhar com esta estrutura de