A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

UNIVERSIDADE FEDERAL DO AMAZONAS- UFAM INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA- ICET SISTEMAS DE INFORMAÇÃO ALGORITMOS E ESTRUTURAS DE DADOS II PILHAS.

Apresentações semelhantes


Apresentação em tema: "UNIVERSIDADE FEDERAL DO AMAZONAS- UFAM INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA- ICET SISTEMAS DE INFORMAÇÃO ALGORITMOS E ESTRUTURAS DE DADOS II PILHAS."— Transcrição da apresentação:

1 UNIVERSIDADE FEDERAL DO AMAZONAS- UFAM INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA- ICET SISTEMAS DE INFORMAÇÃO ALGORITMOS E ESTRUTURAS DE DADOS II PILHAS ACADÊMICOS: Eurimar Lemos Joicilene Nunes Katlhen Maciel Márcio Dias Yasmim Ehm DEZEMBRO de 2011

2 Pilhas (Estáticas X Dinâmicas)
CONCEITO/ FUNDAMENTOS PILHA : Uma das estruturas de dados linear mais simples é a pilha. Possivelmente por essa razão, é a estrutura de dados mais utilizada em programação, sendo inclusive implementada diretamente pelo hardware da maioria das máquinas modernas. Itacoatiara-AM

3 Pilhas (Estáticas X Dinâmicas)
PILHA ESTÁTICA: também chamada de seqüencial, os elementos desta pilha são armazenados em endereços seqüenciais. Materializada na forma de um vetor (arranjo ou matriz). Um vetor de elementos (tamanho pré-definido). Uma variável que controle o topo da pilha. PILHA DINÂMICA: ou encadeada, elementos encadeados por ponteiros. Cada elemento possui pelo menos dois campos: um para armazenar a informação e outro para o endereço do próximo (ponteiro), tudo com alocação dinâmica. Uma struct representando um nó da pilha (dado e ponteiro para o próximo nó da pilha). Um ponteiro para o 1º nó representando a pilha. O primeiro elemento (início) da lista encadeada irá representar o topo atual da pilha. Itacoatiara-AM

4 Podemos fazer uma analogia com uma pilha de pratos em um restaurante
COMO FUNCIONA? Podemos fazer uma analogia com uma pilha de pratos em um restaurante Se quisermos adicionar um prato na pilha, o colocamos no topo da pilha de pratos. Para pegar um prato da pilha, retiramos o do topo. Ou ainda: um software que implemente a função UNDO (o famigerado “Crtl+Z”). A última ação feita será a primeira a ser desfeita. Não podemos retirar qualquer ação, segue-se a ordem. Não podemos inserir uma ação na pilha de ações, caso ela não se torne a última. Itacoatiara-AM

5 Exemplo Pilha Estática
TOPO Desempilha C A B C Pilha Itacoatiara-AM

6 Exemplo Pilha Dinâmica
TOPO PPot PHis PFis PCiê Vazio Aux Aux

7 Pilha 3 operações básicas: 3 operações essenciais:
Consulta: acessa o elemento posicionado no topo; Empilha: insere um novo elemento no topo; Desempilha: remove um elemento do topo. 3 operações essenciais: Inicializa: inicializa a pilha no estado “vazia”; EstaVazia: verifica se a pilha está vazia; EstaCheia: verifica se a pilha está cheia;

8 Operações Básicas Definição da Estrutura #define m 10 struct Pilha { int topo; int elem[m]; }; Inicializar uma Pilha void iniciaPilha (struct Pilha *P) { P->topo=-1; } Empilhar na Pilha void empilhar(struct Pilha *P, int x) { if (P->topo== m-1) printf(“Pilha Cheia”); else { P->topo++; P->elem[P->topo]=x; } Itacoatiara-AM

9 Operações Básicas Consulta o elemento da pilha Desempilha da Pilha
int topo (struct Pilha *P) { int x; if (P->topo==-1) printf(“Pilha Vazia”); else { x=P->elem[P->topo]; return (x); } void desempilha (struct Pilha *P) { if (P->topo==-1) printf(“Pilha Vazia”); else { P->topo--; } Itacoatiara-AM

10 Demonstrando um algoritmo de pilha estática.
Itacoatiara-AM

11 Ex.: ((A+B ou A+B( violam o critério 1
APLICAÇÃO Exemplo: utilização de uma pilha para garantir o correto agrupamento de parênteses, colchetes e chaves em uma expressão matemática. Verificar se existe um número igual de símbolos abrindo e fechando de cada tipo. Verificar se todo símbolo fechando está precedido de um abrindo do mesmo tipo Ex.: ((A+B ou A+B( violam o critério 1 )A+B( ou (A+B)) violam o critério 2 (A+B] ou {A-(B]} violam os 2 critérios Percorrer toda a expressão: A cada símbolo abrindo, empilhar. A cada símbolo fechando, desempilhar e verificar se é do mesmo tipo . 2. Expressão válida: se ao final, a pilha estiver vazia 3. Expressão inválida: se houver uma tentativa de desempilhar com a pilha vazia; se o símbolo desempilhado for diferente do atual ou se ao final a pilha NÃO estiver vazia. Itacoatiara-AM

12 sintaxe de expressões aritméticas.
APLICAÇÕES Adequadas ao processamento de estruturas aninhadas de profundidade imprevisível; sintaxe de expressões aritméticas. controle da seqüência de chamadas de expressões aritméticas. Controle de recursividade; Percurso em árvores. Itacoatiara-AM

13 PARA QUE SERVE? É utilizado para problemas que envolvam seqüência de ações a serem realizadas. Ou seja, onde não há possibilidade de pular etapas. Itacoatiara-AM

14 Bibliografia SILVA, Osmar Quirino da. Estruturas de Dados e Algoritmos Usando C – Fundamentos e Aplicações. Rio de Janeiro: Editora Ciência Moderna Ltda.,2007 PEREIRA, Silvio do Lago. Estruturas de Dados Fundamentais. Conceitos e Aplicações. 11ª Edição. São Paulo: Érica, 2008. Itacoatiara-AM


Carregar ppt "UNIVERSIDADE FEDERAL DO AMAZONAS- UFAM INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA- ICET SISTEMAS DE INFORMAÇÃO ALGORITMOS E ESTRUTURAS DE DADOS II PILHAS."

Apresentações semelhantes


Anúncios Google