- LukinhaAdmin
- Mensagens : 5
Pontos : 17
Reputação : 2
Data de inscrição : 05/05/2017
Idade : 33
Localização : Bandeirantes
PILHA ESTÁTICA
Sáb Jul 01, 2017 11:41 am
Definição
Operações em Pilha estática
Inicialização
Tamanho daPilha
Exibir Pilha
Inserir elemento na Pilha
Excluir elemento da Pilha
Reinicializar Pilha
Videos para reforços ( ABRA OS SPOILERS )
ATIVIDADE DE FIXAÇÃO ( ABRA O SPOILER )
É uma lista linear em que todas as inserções, retiradas e, geralmente, todos os acessos são feitos em apenas um extremo da lista. Os itens são colocados um sobre o outro. O item inserido mais recentemente está no topo e o inserido menos recentemente no f
Propriedade: o último item inserido é o primeiro item que pode ser retirado da lista. São chamadas listas lifo (“last-in, first-out”). Existe uma ordem linear para pilhas, do “mais recente para o menos recente”. É ideal para processamento de estruturas aninhadas de profundidade imprevisível. Uma pilha contém uma seqüência de obrigações adiadas. A ordem de remoção garante que as estruturas mais internas serão processadas antes das mais externas.
PILHA ESTÁTICA: Os itens da pilha são armazenados em posições de memória. Como as inserções e as retiradas ocorrem no topo da pilha, um cursor chamado Topo é utilizado para controlar a posição do item no topo da pilha. Os itens são armazenados em um vetor de tamanho suficiente para conter a pilha. O outro campo do mesmo registro contém o índice do item no topo da pilha. A constante Max define o tamanho máximo permitido para a pilha.
A construção do protótipo de um elemento da Pilha Para determinar um elemento da pilha vamos nos servir do tipo struct.
- Código:
typedef int TIPOCHAVE;
typedef struct{
TIPOCHAVE chave;
}REGISTRO;
typedef struct{
REGISTRO num;
}ELEMENTO;
typedef struct{
int topo;
ELEMENTO A[MAX];
}PILHA;
Operações em Pilha estática
Inicialização
- Código:
//Função:
void inicializarPilha (PILHA *p){
p->topo = -1;
}
Tamanho daPilha
- Código:
///Função:
int retornarQuantidade (PILHA *p){
return p->topo += 1;
}
Exibir Pilha
- Código:
//Função:
void exibirPilha (PILHA *p){
int i;
printf("Pilha: \ ");
for (i = p->topo ; i >= 0; i--){ //Começando do topo para baixo
printf("%i ", p->A[i].reg.chave);
}
Inserir elemento na Pilha
- Código:
//Função:
int inserirNumero (PILHA *p, REGISTRO num){
if (p->topo >= MAX-1){ //Testando se há espaço
return -1;
}
p->topo += 1; //Aumenta o valor do topo
p->A[p->topo].num = num; //Atribui a posição topo o valor do registro
return 0;
}
Excluir elemento da Pilha
- Código:
//Função:
int excluirNumero (PILHA *p){
if (p->topo == MAX-1){ //Se ela nao estiver vazia
return -1;
}
p->topo-=1; // Basta diminuir um valor do topo
return 0;
}
Reinicializar Pilha
- Código:
//Função:
void reinicializar (PILHA *p){
p->topo = -1;
}
Videos para reforços ( ABRA OS SPOILERS )
- [ED] Aula 40 - Pilha Estática - Informações:
- [ED] Aula 41 - Pilha Estática - Inserção e Remoção:
ATIVIDADE DE FIXAÇÃO ( ABRA O SPOILER )
- Spoiler:
Permissões neste sub-fórum
Não podes responder a tópicos
|
|