Relatorio pilha, fila, lista e array
Analise desenvolvimento de Sistemas
Professor
Nome
Goiania, 29 de agosto de 2013
Goiania, 29 de agosto de 2013 – Analise desenvolvimento de Sistemas
Pesquisa professor Heugenio sobre pilha, fila, lista e array.
Pilha
Pilha é uma estrutura de dados que interage com remoção e inserção de dados. Existe uma regra de operação seguida da seguinte forma, sempre que houver uma remoção, o elemento removido é o que esta na estrutura há menos tempo. Sempre o primeiro objeto inserido na fila é o ultimo a ser descartado, também é conhecido como LIFO (Last-In-First-Out). Existem alguns exemplos como funções recursivas em compiladores, mecanismo de desfazer/refazer dos editores de texto, navegação entre paginas web etc. Uma implementação da pilha é realizada através de vetor que seria uma alocação de memoria para elementos ou listas encadeadas. Um exemplo para implementação deveria ser da seguinte forma:
- Informar uma capacidade no caso de implementação sequencial – vetor;
- Empilhar usando o elemento do parâmetro “push”;
- Desempilhar “pop”;
- Mostrar o topo;
- Verificar se a pilha está vazia com “isEmpty”;
- Verificar se a pilha esta cheia com “isFull – implementação sequencial - vetor”.
Supondo uma piçha com capacidade para 5 elementos (5 nós).
Na realidade a remoção de um elemento da pilha é realizada apenas alterando-se a informação da posição do topo.
Veja o algoritmo a seguir para uma pilha de números reais:
#include
struct Pilha {
int topo; /* posição elemento topo */ int capa; float *pElem;
};
void criarpilha( struct Pilha *p, int c ){ p->topo = -1; p->capa = c; p->pElem = (float*) malloc (c * sizeof(float));
}
int estavazia ( struct Pilha *p ){
if( p-> topo == -1 )
return 1; // true
else
return 0; // false
}
int estacheia ( struct Pilha *p ){
if (p->topo == p->capa - 1)
return 1;