Pilas, filas, e estrutura de dados
Programação Estruturada I
AGOSTO
2015
UNIVERSIDADE BANDEIRANTE ANHANGUERA
Nome:
Felipe de Sá Ortiz RA: 3715636032
Programação Estruturada I
AGOSTO
2015
PILHAS
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 dados.*/ void inic (NO ** Pilha)
{
*Pilha=NULL;
}
/*Verificar se a pilha se encontra vazia.*/ int empty (NO *