Programação II. Pilhas (stacks) Bruno Feijó Dept. de Informática, PUC-Rio
|
|
- Kátia Beltrão Coradelli
- 5 Há anos
- Visualizações:
Transcrição
1 Progrmção II Pilhs (stcks) Bruno Feijó Dept. de Informátic, PUC-Rio
2 Pilh Novo elemento é inserido no e cesso é pens o... como num pilh de prtos O único elemento que pode ser cessdo e removido é o do N Pilh (Stck), os elementos são retirdos n ordem invers à ordem em que form colocdos, i.e.: o 1o. que si é o último que entrou (LIFO lst in, first out) N estrutur Fil (Queue) é o inverso: FIFO first in, first out i.e.: 1o. chegr, primeiro sir Operções ásics Empilhr (push) um novo elemento, inserindo-o no Desempilhr (pop) um elemento, removendo-o do
3 Pilh como vetor (rry) ou list encded Vetor push () push () push (c) pop () retorn c push (d) pop () retorn d N n=1 n=2 n=3 c n=2 n=3 d n=2 List NULL push () push () push (c) c pop () retorn c push (d) d pop () retorn d No cso cim, pilh é representd pelo ponteiro (ou top). Porém, é mis gerl e fácil colocr o ponteiro pr o d pilh dentro de um estrutur chmd pilh (que representrá pilh). p represent pilh. p push(c) c p Representr pilh dest form (com um nov estrutur contendo pens um ponteiro, o invés de um simples vriável pontndo pr list) é necessári pr definer Pilh como um TAD.
4 Um exercício chve! pilh de flots Agor que você se o que é um Pilh e o que são s operções push e pop, tente (sem ver o próximo slide) definir s estruturs necessáris pr um TAD Pilh de flots implementdo como list Você precis primeiro definir elemento de list e, depois, definir Pilh como um estrutur de pens um componente (que é o ponteiro pr um elemento de list) Depois você define s funções pilh_cri e pilh_push.
5 Interfce: pilh.c: Agor vmos crir um TAD Pilh de flot como list! typedef struct pilh Pilh; Pilh * pilh_cri(void); // Cons void pilh_lier(pilh * p); // Des int pilh_vzi(pilh * p); // Get flot pilh_pop(pilh * p); // Get & Des void pilh_push(pilh * p, flot ); // Set struct elemento flot info; struct elemento * prox; ; typedef struct elemento Elemento; struct pilh Elemento * ; ; typedef struct pilh Pilh; fltm: lier() e pop() Pilh * pilh_cri(void) Pilh * p = (Pilh *) mlloc(sizeof(pilh)); p-> = NULL; return p; void pilh_push(pilh * p, flot ) Elemento * t=(elemento *) mlloc(sizeof(elemento)); if (t==null) exit(1); t->info= ; t->prox= p->; p->= t; Poderímos tmém incluir peek() que é um pop() sem remoção. Um lterntiv, menos interessnte, seri definir top() que pens retorn o endereço do d pilh e pop() que pens remove o (i.e. um destructor). lier() pode lierr pens qundo pilh está vzi ou lier tudo. int pilh_vzi(pilh * p) return (p-> == NULL);
6 pilh.c como list e vetor struct elemento flot info; struct elemento * prox; ; typedef struct elemento Elemento; struct pilh Elemento * ; ; typedef struct pilh Pilh; Pilh como vetor: # define N 50 struct pilh int n; flot v[n]; ; typedef struct pilh Pilh; Pilh como list: Pilh * pilh_cri(void) Pilh * p = (Pilh *) mlloc(sizeof(pilh)); p-> = NULL; return p; void pilh_push(pilh * p, flot ) Elemento * t=(elemento *) mlloc(sizeof(elemento)); if (t==null) exit(1); t->info= ; t->prox= p->; p->= t; N é o número máximo de elementos n: número de elementos no vetor v[n]: primeir posição livre do vetor v[n-1]: d pilh void pilh_push(pilh * p, flot ) if (p->n==n) exit(1); p->v[p->n]=; p->n++; Pilh * pilh_cri(void) Pilh * p = (Pilh *) mlloc(sizeof(pilh)); p->n = 0; return p;
7 Interfce complete do TAD pilh de flot : typedef struct pilh Pilh; Pilh * pilh_cri(void); void pilh_lier(pilh * p); int pilh_vzi(pilh * p); void pilh_push(pilh * p, flot ); flot pilh_pop(pilh * p); função pilh_cri loc dinmicmente estrutur d pilh iniciliz seus cmpos e retorn seu ponteiro função pilh_lier destrói pilh, lierndo tod memóri usd pel estrutur função pilh_vzi inform se pilh está ou não vzi funções pilh_push e pilh_pop inserem e retirm, respectivmente, um vlor rel n pilh pop() em pilh vzi lnç exceção (stck exception)
8 Módulo completo pilh.c do TAD pilh de flot int pilh_vzi(pilh * p) return (p-> == NULL); Pilh * pilh_cri(void) Pilh * p = (Pilh *)mlloc(sizeof(pilh)); p-> = NULL; return p; void pilh_push(pilh * p, flot ) Elemento * novo = (Elemento *)mlloc(sizeof(elemento)); if (novo==null) exit(1); novo->info = ; novo->prox = p->; p-> = novo; void pilh_lier(pilh * p) Elemento *t, * q = p->; while (q!= NULL) t = q->prox; free(q); q = t; free(p); ou: ssert(!pilh_vzi(p)); requer ssert.h flot pilh_pop(pilh * p) Elemento * t; flot ; if (pilh_vzi(p)) printf("pilh vzi.\n"); exit(1); t = p->; = t->info; p-> = t->prox; free(t); return ; ssert(expressão); se expressão não é verdde, execução termin e mensgem de erro identific rquivo, linh, função e condição que foi viold. Se fosse pilh como vetor: Pilh * pilh_cri (void) Pilh * p = (Pilh *)mlloc(sizeof(pilh)); p->n = 0; //iniciliz com zero elementos return p;
9 CALCULADORA PÓS-FIXADA
10 Notções pr Expressões Aritmétics Infix (infix): operdor entre operndos (5 8) + 3 Pós-fix (posfix): operdor pós operndos (tipo clculdor HP) ou Pré-fix (prefix): operdor ntes dos operndos Tods equivlentes à seguinte árvore:
11 Outro Exemplo de Expressões Aritmétics Infix (infix): (1 2) (4 + 5) Pós-fix (posfix): Pré-fix (prefix): Tods equivlentes à seguinte árvore:
12 Clculdor Pós-fixd Cd operndo é empilhdo num pilh de vlores qundo se encontr um operdor desempilh-se o número proprido de operndos dois pr operdores inários e um pr operdores unários reliz-se operção devid empilh-se o resultdo
13 Exemplo Clculdor Pós-fixd empilhe os vlores 1 e * 2 1 qundo prece o operdor * desempilhe 1 e 2 empilhe -1, o resultdo d operção (1-2) empilhe os vlores 4 e * qundo prece o operdor * desempilhe 4 e 5 empilhe 9, o resultdo d operção (4+5) qundo prece o operdor * * desempilhe -1 e 9 empilhe -9, o resultdo d operção (-1*9) -9
14 Progrm Clculdor hp: clc.h #include "pilh.h" clc.h struct clc chr f[21]; // formto pr impresso (e.g. "%.2f\n ) Pilh * p; // pilh de operndos ; typedef struct clc Clc; Clc * clc_cri(chr * f); void clc_operndo(clc * c, flot vlor); void clc_operdor(clc * c, chr op); void clc_lier(clc * c);
15 hp.c #include <stdio.h> #include "clc.h" int min(void) chr c; flot vlor; Clc * clc; clc = clc_cri("%.2f\n"); do scnf(" %c",&c); // le^ proximo crctere no-rnco if (c=='+' c=='-' c=='*' c=='/') clc_operdor(clc,c); else ungetc(c,stdin); if (scnf("%f",&vlor) == 1) clc_operndo(clc,vlor); while (c!='q'); clc_lier(clc); return 0;
16 clc.c #include <stdio.h> #include <stdli.h> #include <string.h> #include "clc.h" Clc * clc_cri(chr * formto) Clc * c= (Clc *)mlloc(sizeof(clc)); strcpy(c->f,formto); c->p = pilh_cri(); return c; void clc_operndo(clc * c, flot vlor) pilh_push(c->p,vlor); // empilh oper // printf(c->f,vlor); // imprime void clc_lier(clc * c) pilh_lier(c->p); free(c); void clc_operdor(clc * c, chr op) flot v1, v2, vlor; if (pilh_vzi(c->p)) v2 = 0.0; else v2 = pilh_pop(c->p); if (pilh_vzi(c->p)) v1 = 00; else v1 = pilh_pop(c->p); switch (op) cse '+': vlor = v1 + v2; rek; cse '-': vlor = v1 - v2; rek; cse '*': vlor = v1 * v2; rek; cse '/': vlor = v1 / v2; rek; // defult: // printf( unknown %c\n", op); // rek; pilh_push(c->p,vlor); // empilh printf(c->f,vlor); // imprime
Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 11 Pilhas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maispush (c) pop () retorna-se c topo b a topo Figura 10.1: Funcionamento da pilha.
11. Pilhs W. Celes e J. L. Rngel Um ds estruturs de ddos mis simples é pilh. Possivelmente por ess rzão, é estrutur de ddos mis utilizd em progrmção, sendo inclusive implementd diretmente pelo hrdwre d
Leia maisINF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1
INF1007 Programação 2 9 Pilhas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Interface do tipo pilha Exemplo de uso: verificação de expressões Implementação de pilha com lista encadeada
Leia maisAlocação sequencial - Pilhas
Alocção seqüencil - pilhs Alocção sequencil - Pilhs Pilhs A estrutur de ddos Pilh é bstnte intuitiv. A nlogi é um pilh de prtos. Se quisermos usr um pilh de prtos com máxim segurnç, devemos inserir um
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 13 Pilhas Edirlei Soares de Lima Pilha Uma pilha é uma estrutura de dados dinâmica na qual novos elementos são sempre inseridos no topo da pilha e acessados
Leia maisProgramação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Vetores vs Estruturas Dinâmicas Vetores (arrays): Ocupa um espaço contíguo de memória Permite acesso randômico
Leia maisProgramação II. Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio
Progrmção II Ordenção (sort) Bruno Feijó Dept. de Informátic, PUC-Rio Bule Sort Bule Sort Apens de interesse didático e de referênci A idéi é ir comprndo dois vizinhos e trocndo o menor pelo mior té que
Leia maisSCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)
SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{
Leia maisIntrodução a Programação. Tipos Abstratos de Dados Implementando Pilha e Fila
Introdução a Programação Tipos Abstratos de Dados Implementando Pilha e Fila Abstração Abstração é o processo ou resultado de generalização por redução do conteúdo da informação de um conceito ou fenômeno
Leia maisREVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
REVISÃO DE PILHAS E FILAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos PILHAS E FILAS São tipos especiais de listas com disciplina restrita de acesso Acesso Consulta Inserção Remoção Disciplina
Leia maisPilhas e Filas. Nádia Félix e Hebert Coelho
Pilhas e Filas Nádia Félix e Hebert Coelho Vários slides foram adaptados de Nina Edelwais e Renata Galante Estrutura de Dados Série de Livros Didáticos - Informática - UFRGS Pilhas e filas Listas lineares
Leia maisEstruturas de Dados Aula 11: TAD Pilha
Estruturas de Dados Aula 11: TAD Pilha Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 10; Estruturas
Leia maisEstruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 12 - Filas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisEstrutura de Dados II. Prof. Sérgio Portari
Estrutura de Dados II Prof. Sérgio Portari - 2016 Plano de Ensino EMENTA: Filas, Árvores e suas generalizações: árvores binárias, árvores de busca, árvores balanceadas, árvores B e B+. Aplicações de árvores
Leia maisInstituto de C. Filas. Luis Martí Instituto de Computação Universidade Federal Fluminense -
Instituto de C Filas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução
Leia maisMétodos Computacionais. Fila
Métodos Computacionais Fila Definição de Fila Fila é uma estrutura de dados dinâmica onde: Inserção de elementos se dá no final e a remoção no início O primeiro elemento que entra é o primeiro que sai
Leia maisEstrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção
Leia maisMétodos Computacionais. Listas Encadeadas
Métodos Computacionais Listas Encadeadas Vetores Declaração de vetor implica na especificação de seu tamanho Não se pode aumentar ou diminuir tamanho Outra alternativa no uso de vetores é alocar dinamicamente
Leia maisUso da memória. Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores. Alocação estática da memória. Alocação estática da memória (2)
Estruturs de Ddos Auls 3 e 4: Uso d memóri e Vetores 08/03/2009 e 10/03/2009 Uso d memóri Existem 3 mneirs de reservr o espço d memóri: Vriáveis glois (estátics) Espço existe enqunto progrm estiver executndo
Leia maisProjeto de Compiladores Professor Carlos de Salles
Projeto de Compildores 2006.1 Professor Crlos de Slles Trlho 1 Autômto pr Plvrs Reservds Ojetivo do trlho: implementr um progrm que recee como entrd um list de plvrs reservds e define como síd um função
Leia maisPilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista
Pilha SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Aritmética de ponteiros em C (continuação) O que acontece na memória? Ponteiro para ponteiro etc. Métodos de pesquisa
Leia maisUniversidade Estadual Paulista Júlio de Mesquita Filho UNESP
Introdução à Computação II AULA 16 BCC Noturno - EMA896115B Prof. Rafael Oliveira olivrap@gmail.com Universidade Estadual Paulista Júlio de Mesquita Filho UNESP Rio Claro 2014 (Sem 2) Estruturas de Dados
Leia maisProgramação II. Filas (Queues) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Filas (Queues) Bruno Feijó Dept. de Informática, PUC-Rio Fila Na Pilha, o novo elemento é inserido no topo e o acesso é apenas ao topo... como numa pilha de pratos topo O único elemento
Leia maisEstruturas de Dados Filas
Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados
Leia maisAlgoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin (daniel.martin@ufabc.edu.br) Aula 8 Aplicação de Fila Calcular a distância entre pessoas no Facebook Aplicação de Fila Calcular a distância entre
Leia maisPilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I
Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais
Leia maisPilha. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Pilha SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Pilha O que é? Para que serve? 2 Problema: chamada de sub-rotinas Rotina A 1 print A 2 call C 3 call B 4 call D 5 return Rotina B 1 call
Leia maisMódulo 10 Listas Encadeadas
Estruturas de Dados Módulo 10 Listas Encadeadas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus
Leia maisSCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Sequencial Estática e Encadeada Dinâmica 17 e 19/8/2010 Exercício: Implementação da pilha sequencial e estática Declaração em C escondendo a ED do
Leia maisInstituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense -
Instituto de C Linguagem C: Listas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Listas Encadeadas Definição Funções básicas Tópicos Principais
Leia maisPilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista
Pilha SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências
Leia maisEstruturas de Dados Aula 11: TAD Pilha 09/05/2011
Estruturas de Dados Aula 11: TAD Pilha 09/05/2011 Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo
Leia maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010 Aluno: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova deve ser completamente
Leia maisFunções recursivas. O exemplo mais comum: int fat(int n){ if(n == 0) return 1; return n*fat(n-1); }
Funções Recursivas Funções recursivas O exemplo mais comum: int fat(int n){ if(n == 0) return 1; return n*fat(n-1); Versão sem recursão: int fat(int n){ int i = 0; int f = 1; for(i=1; i
Leia maisProgramação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Árvores Dados organizados de maneira hierárquica Exemplos: arquivos em diretórios, subdivisão de espaço 2D em um
Leia maisIntrodução a Programação. Listas Encadeadas
Introdução a Programação Listas Encadeadas Tópicos da Aula Hoje aprenderemos que existem, além de vetores, estruturas de dados dinâmicas que podem armazenar coleções de dados Estruturas Dinâmicas e Vetores
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Pilhas Filas Deques Pilhas,,f filas e deques Vimos que as listas lineares admitem inserção e eliminação
Leia maisINF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática
Leia maisProf. Jesus José de Oliveira Neto
Prof. Jesus José de Oliveira Neto É uma das estruturas de dados mais simples A idéia fundamental da pilha é que todo o acesso a seus elementos é feito através do seu topo. Assim, quando um elemento novo
Leia maisAula 3 Alocação Dinâmica
Aula 3 Alocação Dinâmica Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas de Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno
Leia maisListas. Aula 01. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
Engenharia de CONTROLE e AUTOMAÇÃO Listas Aula 01 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br 1/ Sumário
Leia maisConceitos. Pilhas e Filas. Conceitos e Implementação em linguagem C. Maria Adriana Vidigal de Lima. Março
Conceitos e Implementação em linguagem C Março - 2009 1 Conceitos 2 Organização dos dados Em determinadas aplicações, as pilhas e filas representam estruturas de dados importantes, nas quais seus elementos
Leia maisAtividade de laboratório listas encadeadas simples
Atividade de laboratório listas encadeadas simples 1. Estrutura básica Uma lista encadeada simples é uma estrutura de dados composta de uma seqüência de estruturas elementares chamadas nós. Cada nó contém
Leia mais- Estruturas e aplicações
1 MCTA028 Programação Estruturada - Estruturas e aplicações Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-2018 Estruturas (=registros) 2 Linguagem
Leia maisÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior
ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda
Leia maisINF 1620 P2-01/11/03 Questão 1 Nome:
INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,
Leia maisÁrvores Binárias Balanceadas Estrutura de Dados I
- entro de iências Exatas, Naturais e de Saúde Departamento de omputação Árvores inárias alanceadas Estrutura de Dados I OM06992 - Estrutura de Dados I Prof. Marcelo Otone guiar marcelo.aguiar@ufes.br
Leia maisPilhas e Filas. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Pilhas e Filas Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Pilhas 2 Pilhas (Stack) Estrutura similar às listas lineares que vimos na última aula [Mais Simples]
Leia maisÁrvore estritamente binária É uma árvore onde todos os nós que não são folha possuem dois filhos.
Árvore estritmente binári É um árvore onde todos os nós que não são folh possuem dois filhos. Ex.: 434 Árvore binári complet Um árvore binári complet de profundidde d é um árvore estritmente binári onde
Leia maisAlgoritmos e Estruturas de Dados II IEC013
Algoritmos e Estruturas de Dados II IEC013 TAD, Pilhas e Filas Prof. César Melo Todos os créditos ao Prof. Leandro Galvão TAD: Definição SE programa = definição de um tipo de dados + operação sobre dados
Leia maisEstruturas Compostas Parte II
Estruturas Compostas Parte II Filas e Pilhas Leonardo Tórtoro Pereira Slides fortemente baseados no material do professor Ricardo Farias: http://www.cos.ufrj.br/~rfarias/cos121/ Pilhas Pilhas Também conhecida
Leia maisCES-11. Pilhas Definição Operações Filas. Operações Deques. Definição. Operações
CES-11 Pilhas Definição Operações Filas Definição Operações Deques Definição Operações PILHAS, FILAS E DEQUES As listas lineares admitem inserção e eliminação em qualquer posição. Pilhas, filas e deques
Leia maisProgramação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos
Leia maisTipos abstratos de dados; pilhas e filas
1 Tipos abstratos de dados; pilhas e filas Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html http://www.ime.usp.br/~pf/algoritmos/aulas/fila.html
Leia maisA Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
Engenharia de CONTROLE e AUTOMAÇÃO A Pilha Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br 1/5
Leia maisvoid push(int i){ if (num<max) vet[num++]=i; else { printf(">>> Erro: overflow na pilha!!!\n"); printf("%d nao foi empilhado!!!
Estruturas de Dados Lista 2: soluções J. L. Rangel 1. Suponha que uma pilha é representada através de um vetor vet e de um inteiro num. As declarações podem ser #define MAX 100 int vet[max], num; Escreva
Leia maisProgramação II. Vetores Bidimensionais e Vetores de Ponteiros. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Vetores Bidimensionais e Vetores de Ponteiros Bruno Feijó Dept. de Informática, PUC-Rio Array (Vetor) Bidimensional 0 0 1 2 3 4 5 6 7 8 14 1 2 Array (Vetor) Bidimensional vs Ponteiros Quando
Leia maisCONSTRUÇÃO DE ALGORITMOS E PROGRAMAS
CONSTRUÇÃO DE ALGORITMOS E PROGRAMAS O computdor é cpz de mnipulr e rmzenr um grnde quntidde de ddos ou informções com lto desempenho, liberndo o homem pr outrs trefs ns quis o seu conhecimento é indispensável.
Leia maisFACULDADE DE TECNOLOGIA SENAC GOIÁS ADELTON HENRIQUE ABISHAI LEMES BORGES NETO HENRIQUE FERREIRA DA SILVA
FACULDADE DE TECNOLOGIA SENAC GOIÁS ADELTON HENRIQUE ABISHAI LEMES BORGES NETO HENRIQUE FERREIRA DA SILVA ESTRUTURA DE DADOS GOIANIA 2015/2 ADELTON HENRIQUE ABISHAI LEMES BORGES NETO HENRIQUE FERREIRA
Leia maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas
Leia maisMétodos Computacionais. Variações de Listas Encadeadas
Métodos Computacionais Variações de Listas Encadeadas Variações de Listas Encadeadas Listas podem variar quanto ao: Tipo de encadeamento Simples Circulares Duplas Circulares e Duplas Conteúdo Tipos Primitivos
Leia mais26/8/2009 ALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CAPACIDADE DE REPRESENTAÇÃO CES-11. Revisão. Tipo Lógico: Tipo Inteiro: Tipo Caractere:
ALGORITMOS E ESTRUTURAS DE DADOS Prof. Pulo André Cstro uloc@it.br Sl 110 Prédio d Comutção www.com.it.br/~uloc IECE - ITA Tios esclres rimitivos Tios esclres rimitivos Tio Inteiro: Domínio: números inteiros
Leia maisProgramação II. Tipos Estruturados
Programação II Tipos Estruturados Parte 1: struct Parte 2: Ponteiros para Estrutura Estruturas e Memória Bruno Feijó Dept. de Informática, PUC-Rio struct Dados Compostos Até agora tipos simples: char,
Leia maisMelhores momentos AULA 14
Melhores momentos AULA 14 Filas Fonte: http://justoutsidetheboxcartoon.com/ PF 5.1 http://www.ime.usp.br/ pf/algoritmos/aulas/la.html Filas Uma la (=queue) é uma lista dinâmica em que todas as inserções
Leia mais2ª Lista de Exercícios
Universidade Federal de Minas Gerais Departamento de Ciência da Computação Algoritmos e Estruturas de Dados II (Turmas M, N, W, F) 1º Semestre de 2012 Profs. Camilo Oliveira, Gisele Pappa, Ítalo Cunha,
Leia mais1. Listas sequenciais versus listas ligadas. Lista sequencial
Alocação Dinâmica Listas Ligadas 1. Listas sequenciais versus listas ligadas Lista sequencial Uma lista sequencial é um conjunto de elementos contíguos na memória. Um vetor é o melhor exemplo de lista
Leia maisponteiros INF Programação I Prof. Roberto Azevedo
ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência
Leia maisA regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out).
Fila Algumas aplicações impõem regras de acesso às informações armazenados em estruturas de dados, restringindo como os dados são inseridos e removidos da estrutura. A fila, também conhecida como QUEUE,
Leia mais//Declaração do TAD pilha. // As operações definidas para esse tipo são criar() push() pop() destroi() // typedef struct pilha TPilha;
Declaração do TAD pilha. As operações definidas para esse tipo são criar() push() pop() destroi() typedef struct pilha TPilha; cria a pilha e retorna o ponteiro para o tipo Pilha TPilha* criar(void); Empilha
Leia mais12. Filas Interface do tipo fila
12. Filas W. Celes e J. L. Rangel Outra estrutura de dados bastante usada em computação é a fila. Na estrutura de fila, os acessos aos elementos também seguem uma regra. O que diferencia a fila da pilha
Leia maisProgramação II. Vetor de Tipo Estruturado e Vetor de Ponteiros. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Vetor de Tipo Estruturado e Vetor de Ponteiros Bruno Feijó Dept. de Informática, PUC-Rio Vetores e Tipos Estruturados Dado um tipo estruturado T (com 3 campos, por exemplo), podemos ter
Leia maisEstruturas de Dados. Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais:
Estruturas de Dados Pilhas Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais: disponíveis em http://ww3.datastructures.net/ cedidos
Leia maisLinguagem C: Listas Encadeadas
Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Introdução 2 3 Organização Introdução 1 Introdução 2 3 Introdução Introdução
Leia maisLista: conceito, representação e algoritmos
Lista: conceito, representação e algoritmos SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Problema Imaginem a situação da automação de uma biblioteca Todos os livros devem ser cadastrados
Leia maisProgramação II. Tipos Estruturados. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Tipos Estruturados Bruno Feijó Dept. de Informática, PUC-Rio Dados Compostos Até agora tipos simples: char, int, float,. Necessidade por dados compostos, por tipos estruturados Ex.: pontos
Leia maisEstruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 4 Funções 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisProgramação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos
Leia maisPilhas e Filas. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.2 e 3.3
Pilhas e Filas Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.2 e 3.3 http://www2.dcc.ufmg.br/livros/algoritmos/ PILHAS Pilha É uma lista linear em que todas as inserções, retiradas e, geralmente,
Leia maisEstruturas de Dados Aula 16: Árvores com Número Variável 13/06/2011
Estruturas de Dados Aula 16: Árvores com Número Variável de Filhos 13/06/2011 1 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos
Leia maisREVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
REVISÃO DE C Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Ponteiros Alocação dinâmica de memória Recursão INSTITUTO DE COMPUTAÇÃO - UFF 2 PONTEIROS PONTEIROS C permite o armazenamento
Leia maisComputação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos
Computação I - C Prova 2 2016-2 14/10/2016 - Profs. Adriano Cruz e Valeria Bastos Nome: DRE: Observação: Justifique todas as respostas dadas. Some nte serão aceitas respostas com justificativas. Questão
Leia maisDAS5102 Fundamentos da Estrutura da Informação
Pilhas A estrutura de dados Pilha emula a forma de organização de objetos intuitiva que é utilizada diariamente nos mais diversos contextos da vida humana. Containeres são empilhados e desempilhados diariamente
Leia maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010 Aluno: Matrícula: Turma: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 14 Árvores Binárias Edirlei Soares de Lima Árvores Uma estrutura de dados do tipo árvore permite que dados sejam organizados de maneira hierárquica.
Leia maisListas ligadas/listas encadeadas
1 Listas ligadas/listas encadeadas Leitura recomendada: http://www.ime.usp.br/~pf/algoritmos/aulas/lista.html 2 Processamento elementar de listas Definição mais restritiva (tipo de lista possivelmente
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Leia maisEstrutura de Dados: Aula 3 - Linguagem C
Estrutura de Dados: Aula 3 - Linguagem C Uso de Memória Alocação de memória Estática Ocorre em tempo de compilação no momento em que se define uma variável ou estrutura é necessário que se definam seu
Leia maisListas Duplamente Encadeadas
Listas Duplamente Encadeadas! quando for preciso seguir a seqüência de elementos em ambos os sentidos! cada nó possui dois ponteiros: ant e prox ant prox a b c d Início Fim 1 Listas Duplamente Encadeadas
Leia maisAula 11 Pilha Dinâmica. prof Leticia Winkler
Aula 11 Pilha Dinâmica prof Leticia Winkler 1 Pilha Dinâmica (Dynamic Stack) Pilha implementada através de uma lista linear encadeada. É uma lista linear encadeada em que as operações de inserção e retirada
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Pilhas e listas Estruturas de Dados 2 Ordenação (Classificação) Rearranjar um conjunto de objetos Ordem ascendente
Leia maisProgramação Estruturada Prof. Rodrigo Hausen Agregados de Dados Heterogêneos (structs)
Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Agregados de Dados Heterogêneos (structs) 1 AGREGADO HOMOGÊNEO Um agregado homogêneo de dados é um conjunto de dados que são necessariamente
Leia maisINF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15
INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15 1. Um número racional é expresso por dois inteiros: um numerador e um denominador (este último diferente de zero!). Implemente um TAD para representar números
Leia maisESTRUTURA DE DADOS (TCC )
ESTRUTURA DE DADOS (TCC-00.319) Listas lineares Pilhas e Filas Cristina Boeres 2 Manipulando listas lineares! Dependendo do problema a ser resolvidos, existem duas formas especiais (que veremos aqui no
Leia mais