Aula Exemplo 1 - Estrutura de dados
Ter Jun 16, 2020 4:26 pm
Definição
É 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.
Operações em Pilha estática
Inicialização
Tamanho daPilha
Exibir Pilha
Inserir elemento na Pilha
Excluir elemento da Pilha
Reinicializar Pilha
Abaixo deixe suas Duvidas
É 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;
}
Abaixo deixe suas Duvidas
Emanoel Juvencio gosta desta mensagem
Permissões neste sub-fórum
Não podes responder a tópicos
|
|