Estrutura de Dados II. Prof. Sérgio Portari

Documentos relacionados
Estruturas de Dados Aula 11: TAD Pilha

INF 1007 Programação II

Universidade Estadual Paulista Júlio de Mesquita Filho UNESP

INF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 06: Pilhas

Introdução a Programação. Tipos Abstratos de Dados Implementando Pilha e Fila

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

Filas. Prof. Túlio Toffolo BCC202 Aula 12 Algoritmos e Estruturas de Dados I

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Pilhas e Filas. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.2 e 3.3

Pilhas e Filas. Nádia Félix e Hebert Coelho

Aula 11 Pilha Dinâmica. prof Leticia Winkler

Pilha. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Métodos Computacionais. Listas Encadeadas

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados

Filas Exemplo de Aplicação

Prof. Jesus José de Oliveira Neto

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 07: Filas

LP II Estrutura de Dados

Pilhas. Prof. Túlio Toffolo BCC202 Aula 11 Algoritmos e Estruturas de Dados I

Estrutura de Dados: Aula 3 - Linguagem C

Conceitos. Pilhas e Filas. Conceitos e Implementação em linguagem C. Maria Adriana Vidigal de Lima. Março

1. Listas sequenciais versus listas ligadas. Lista sequencial

BCC202 - Estrutura de Dados I

Pilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode

Alocação Seqüencial VAL MAX TOPO

Algoritmos e Estruturas de Dados II IEC013

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais:

Estruturas Compostas Parte II

BCC202 - Estrutura de Dados I

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Árvores Binárias. 16/11 Representação e Implementação: Encadeada Dinâmica O TAD

Árvore Binária de Busca. Prof. César Melo

Estrutura de Dados II

INF 1620 P2-01/11/03 Questão 1 Nome:

Árvores Binárias de Busca (ABB) 18/11

Árvores & Árvores Binárias

S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas

Algoritmos e Estruturas de Dados II IEC013. TAD, Pilhas e Filas. Prof. César Melo

Árvores. Sérgio Carlos Portari Júnior

ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS

Instituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense -

AULA 12 ESTRUTURA DE DADOS

Estruturas de Dados Filas

Capítulo 8: Abstrações de dados

Atividade de laboratório listas encadeadas simples

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

EAD PILHA - DEFINIÇÃO

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista

Estruturas de Dados Aula 11: TAD Pilha 09/05/2011

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Árvores Binárias de Busca

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

Algoritmos e Estruturas de Dados I

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)

Universidade Federal de Mato Grosso Estrutura de Dados II

ESTRUTURA DE DADOS (TCC )

Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011

Listas Lineares Ordenadas

Linguagem C: Listas Encadeadas

08/08/2011. Pilha. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Pilha. O que é? Para que serve?

Estruturas de Dados Encadeadas

Pilhas e Filas. Prof. Walteno Martins Parreira Júnior.

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM

LP II Estrutura de Dados

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

Estruturas de Dados Aula 16: Árvores com Número Variável 13/06/2011

SCC Algoritmos e Estruturas de Dados I

Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010

Pilha. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

CES-11. Pilhas Definição Operações Filas. Operações Deques. Definição. Operações

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Prof. Jesus José de Oliveira Neto

ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS

Estruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

ÁRVORE BINÁRIA DE BUSCA

Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Estrutura de Dados I Prof.: José Luiz A.

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 03 Pag.: 1

Árvore binária - definição

Carlos Eduardo Batista. Centro de Informática - UFPB

Árvores Binárias de Busca (ABB) 18/11

Árvores & Árvores Binárias

Transcrição:

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 BIBLIOGRAFIA BÁSICA: DROZDEK, A. Estrutura de Dados e Algoritmos em C++. São Paulo: Editora Pioneira Thomson Learning, 2002. MORAES, C.R. Estruturas de Dados e Algoritmos Uma abordagem didática. São Paulo: Editora Berkeley Brasil, 2001. TERADA, R. Desenvolvimento de Algoritmo e Estruturas de Dados. São Paulo: Makron Books, 1991. WIRTH, N. Algoritmos e Estruturas de Dados. Rio de Janeiro: LTC Editora. 1999. BIBIOGRAFIA COMPLEMENTAR SALVETTI, D. D. & BARBOSA L. M. Algoritmos. São Paulo: Makron Books, 1998 PEREIRA, S. do L. Estrutura de Dados Fundamentais. São Paulo: Editora Érica.1996 TENENBAUM, A. M. Data Structures Using Pascal. São Paulo Prentice-Hall Inc, 1986

Objetivo Possibilitar que o aluno compreenda, utilize e implemente estruturas de dados avançadas com acesso à memória em C, que possam ser utilizados nas diversas aplicações pertinentes. Metodologia Aulas expositivas; Aulas Práticas em Laboratório; Atividades individuais e em grupo.

Avaliação Trabalhos individuais ou em grupos, intra ou extra sala, totalizando até 30% do total semestral de pontos; Aplicação de 2 avaliações parciais, totalizando 40% do total semestral de pontos; Avaliação Semestral, totalizando 30% do total semestral de pontos.

Informações, Avisos e Contatos E-mail: portari.uemgituiutaba@gmail.com Utilizem este e-mail para evitar outros endereços com SPAM que não acesso mais; Página: www.sergioportari.com.br Na página você encontrará um link para informações da disciplina, datas importantes como entrega de trabalhos e provas, além de download dos materiais apresentados em sala.

Dúvidas?

Revisão de Pilhas Sérgio Carlos Portari Júnior

O que é uma pilha? Pilha 4 4 3 3 2 1 2 1

O que é uma pilha? Pilha 4 3 2 1

TAD Pilha Tipo Abstrato de dados com a seguinte característica: O último elemento a ser inserido é o primeiro a ser retirado/ removido (LIFO Last in First Out) Analogia: pilha de pratos, livros, etc. Usos: Chamada de subprogrmas, avalição de expressões aritméticas, etc.

TAD Pilha Há uma célula cabeça no topo para facilitar a implementação das operações empilha e desempilha quando a pilha estiver vazia. Para desempilhar o item x (n) basta desligar a célula cabeça da lista e a célula que contém x (n-1) passa a ser a célula cabeça. Para empilhar um novo item, basta fazer a operação contrária, criando uma nova célula cabeça e colocando o novo item na antiga.

TAD Pilha Cada célula de uma pilha contém um item da pilha e um ponteiro para outra célula. O registro TipoPilha apilha contém um ponteiro para o topo da pilha (célula cabeça) A última célula da pilha aponta para NULO

Pilha Cabeça da pilha 4 3 2 1 Null

Estrutura Para utilizar uma pilha, criamos uma estrutura de dados que guarda as informações e um ponteiro para o próximo elemento da pilha. Exemplo: typedef struct pilha { int info; struct pilha *prox; } Pilha;

Criando a pilha Para criar a pilha na memória, chamamos uma função que retorna um ponteiro para vazio, reservando um espaço na memória para o ponteiro que irá apontar a cabeça da pilha. Pilha *criapilha() { return NULL; }

Inserindo elementos Como dito, a inserção sempre será feita no início da pilha, então criamos uma função de inserção (PUSH) com a seguinte estrutura: Pilha *Push (Pilha *p, int i) { Pilha *novo = (Pilha*) malloc(sizeof(pilha)); novo->info = i; novo->prox = p; return novo; }

Testando se está vazia Em algumas situações, precisaremos saber se existe algum elemento na pilha, ou, se ela está vazia. int PilhaVazia (Pilha *p) { } return (p == NULL); //retorna 0 (falso) se existe elemento ou //diferente de zero (verdadeiro) se vazia.

Removendo elementos De forma análoga, a remoção (Pop) também ocorre apenas na cabeça da pilha. Pilha *Pop (Pilha *p) { Pilha *aux=p; if (PilhaVazia(p)) printf("\npilha vazia"); else { p=p->prox; free(aux); return p; } }

Procura um elemento Para buscar um elemento específico na pilha, iremos percorre-la da cabeça para o fundo, procurando o elemento. Pilha *Busca (Pilha *p, int v) { Pilha *aux; for (aux=p; aux!=null; aux = aux->prox) { if (aux->info == v) return aux; //retorna a célula se encontrou o elemento } return NULL; // não achou o elemento, retorna vazio }

Liberando a pilha Para liberar a memória, percorremos célula a célula, da cabeça ao fundo, deligando as conexões e liberando a memória. void liberapilha (Pilha *p) { Pilha *l = p, *t; while ( l!= NULL) { t = l -> prox; /* guarda referência p/ próx. elemento */ free(l); /* libera a memória apontada por p */ l = t; /* faz p apontar para o próximo */ } }

Exercícios Organize as funções de pilha em C apresentadas no exemplo. Crie um programa que faça um menu para acionar as operações de uma pilha de acordo com a escolha do usuário 1 Criar pilha 2 Adicionar elemento 3 Buscar Elemento 4 Mostrar pilha 5 Liberar Pilha 6 - Sair