1 / 18

Pilhas

Pilhas. Marco Antonio Montebello Júnior marco.antonio@aes.edu.br. Estrutura de Dados. Pilhas. Estrutura de dados variável LIFO – Last In, First Out (Último a entrar é o primeiro a sair) FILO = First In, Last Out (Primeiro que entra é o último a sair) Aplicações: Análise de expressões

sylvia
Télécharger la présentation

Pilhas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pilhas Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

  2. Pilhas • Estrutura de dados variável • LIFO – Last In, First Out (Último a entrar é o primeiro a sair) • FILO = First In, Last Out (Primeiro que entra é o último a sair) • Aplicações: • Análise de expressões • Conversão de notações Introdução a Computação

  3. Representando Pilhas com Vetor • Vetor • Possui uma quantidade prévia de elementos • Pilha • É dinâmica • Aumenta e diminui conforme empilhamos e desempilhamos os elementos • Pilhas e Vetores são estruturas diferentes • Iremos utilizar inicialmente vetores para representarmos as pilhas Introdução a Computação

  4. Pilhas ENTRADA SAÍDA TOPO Elemento 2 Elemento 1 BASE Introdução a Computação

  5. Representado a Pilha • Vamos utilizar uma estrutura (struct) para representar a nossa pilha que será chamada de stack #define MAXPILHA 100 struct stack { int Topo; int Item[MAXPILHA]; }; Introdução a Computação

  6. Representado a Pilha • Levando em consideração a estrutura criada, podemos declarar uma pilha da seguinte maneira: struct stack s; Introdução a Computação

  7. Entendimento da Estrutura • Item • Vetor onde os elementos que são empilhados são armazenados • Topo • Armazena a posição que se encontra o último elemento da pilha • Quando a pilha estiver vazia o topo é igual à -1 Introdução a Computação

  8. Manipulação de PilhasIniciando uma Pilha • Inicializa uma Pilha • O topo da pilha passa a ter o valor -1, o qual indica que a mesma está vazia • O vetor não precisa ser inicializado com 0’s (zeros) void IniciaPilha(struct stack *ps); IniciaPilha(&s); Introdução a Computação

  9. Manipulação de PilhasVerificando Limites • Pilha Vazia • Verifica se a pilha está vazia • Retorna: • True – Quando estiver realmente vazia (1) • False – Quando não estiver vazia (0) int iPilhaVazia(struct stack *ps); iRet = iPilhaVazia(&s); Introdução a Computação

  10. Manipulação de PilhasVerificando Limites • Pilha Cheia • Verifica se a pilha está cheia • Retorna: • True – Quando estiver realmente cheia (1) • False – Quando não estiver cheia (0) int iPilhaCheia(struct stack *ps); iRet = iPilhaCheia(&s); Introdução a Computação

  11. Manipulação de PilhasEmpilhando um Elemento (push) • Adiciona um elemento no topo da pilha • É chamada de PUSH • Deve-se sempre verificar se a pilha já não está cheia int iPush(struct stack *ps, int iVal); iRet = iPush(&s, iNum); Introdução a Computação

  12. Manipulação de PilhasDesempilhando um Elemento (pop) • Retira um elemento do topo da pilha • É chamada de POP • Deve-se verificar se a pilha não está vazia int iPop(struct stack *ps); iRet = iPop(&s); Introdução a Computação

  13. Manipulação de PilhasConsultando o Topo da Pilha • Consulta o elemento do topo da pilha sem desempilhar o mesmo int iElemTopo(struct stack *ps); iRet = iElemTopo(&s); Introdução a Computação

  14. Exemplo de Pilhas • Exemplo do Trem • Demonstrar a execução do programa de Pilhas Introdução a Computação

  15. Exercícios • Utilizando as funções de PUSH e POP de pilhas, coloque na ordem determinada as letras que se encontrar em uma Pilha P1 na Pilha P2, pode ser utilizada uma variável auxiliar para realizar as trocas • Frase Original: AES-SI Introdução a Computação

  16. Exercícios • Utilizando pilhas, crie um algoritmo que reordene um conjunto de dados fornecido pelo usuário tal que o primeiro e o último elementos devem ser trocados de posição e todos os elementos entre o primeiro e o último deve também ser trocados relativamenteEx.: { 1 2 3 4 5 } { 5 4 3 2 1 } Introdução a Computação

  17. Exercícios • Utilizando pilhas, crie um algoritmo que converta um número decimal para binário.Ps.: A conversão de números binários para decimal se dá através da divisão sucessiva dos resultados até que o mesmo seja 0 ou 1Exemplo: (100011)2 = (35)10 Introdução a Computação

  18. Exercícios • Um palavra é considerada palíndroma se ela pode se lida da esquerda para a direita ou da direita para a esquerda com o mesmo significado. Neste caso não podemos considerar as acentuações, as letras maiúsculas ou minúsculas, os espaços e os caracteres especiais. Exemplos: • Subi no Onibus • Radar • Ana • Go dog • Utilizando pilhas, desenvolva um algoritmo que determine se uma expressão é palíndroma ou não. Introdução a Computação

More Related