Capítulo 8: Abstrações de dados

Documentos relacionados
Matrizes esparsas: definição

Filas Exemplo de Aplicação

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

Pesquisa em Memória Primária. Prof. Jonas Potros

Árvores B. Prof. Flávio Humberto Cabral Nunes

Intercalação de vários arquivos. Estrutura de Dados II Prof Jairo Francisco de Souza

Estruturas de Dados Pilhas, Filas, Listas

Disciplina: Arquitetura de Computadores

Organização e Arquitetura de Computadores I

Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados II IEC013

Microcontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk

Estruturas de Dados com Jogos. Capítulo 8 Árvores

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti

Declarações. Variáveis e Classe de Memória

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Aula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler

Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/03/2011

Análise Sintática II. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 34

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

INF 1620 P3-29/06/04 Questão 1 Nome:

4. ARQUITETURA DE UM SISTEMA

Aula 5 e 6 Pilhas e suas Aplicações. prof Leticia Winkler

Tipos Abstratos de Dados. Estrutura de Dados

ÍNDICE. Árvores (Definição e terminologias) 2. Árvores Binárias 4. Armazenamento de Árvores Binárias 5. Aplicação 6. Como percorrê-la 6.

O conjunto de registros pode ser: Um vetor de registros Uma lista encadeada Uma árvore Etc.

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Árvores de Pesquisa (Parte I)

Variáveis, Tipos de Dados e Operadores

CES-30 Técnicas de Banco de Dados - BD e CE-240 Projeto de Sistema de BD

Memórias. Memórias: Utilização:

Exemplo Árvore Binária

Linguagens de Programação. Tipos. Carlos Bazilio

2. A figura a seguir ilustra várias relações binárias em Quais são funções? Dentre as que são funções, quais as sobrejetivas? E quais as injetivas?

Prof. Leonardo Augusto Casillo

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

EDUARDO DA SILVA SARDÃO 0981/00-4 IGOR RODRIGO MACHADO DE MENEZES 1422/98-1 TRABALHO FINAL ÁRVORES B+

Como publicar páginas Web no GoogleSites

Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza

ADT - Árvores. ADT Árvores Definição

BCC202 - Estrutura de Dados I

Prof. Kleber R. Rovai

Memórias Parte 1. SEL-0415 Introdução à Organização de Computadores. Aula 4. Prof. Dr. Marcelo Andrade da Costa Vieira

Gerência de memória III

EAD Árvore - representação usando listas ligadas

Trabalho Prático. Descrição Considere os seguintes dados a respeito de uma pessoa:

ESTRUTURA DE DADOS FILAS SEQUENCIAIS

Índice. Capítulo 3 Estrutura de Dados sequencial com armazenamento não sequencial

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Tipos Abstratos de Dados

Figura 1: Esboço do programa Quicksort. a) Desenhe a árvore de ativação quando os números 9, 8, 7, 6, 5, 4, 3, 2, 1 são ordenados.

Algoritmos e Programação II. Coleções. Coleções. Baseado no material do Prof. Julio

Algoritmos e Estrutura de Dados III. Árvores

ORGANIZANDO DADOS E INFORMAÇÕES: Bancos de Dados

Árvore Binária de Busca

Aula 15 Árvores Digitais / Trie

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 7-10

Introdução à Programação

Questão 1. Nome para o arquivo fonte questao1.c

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)

Desenvolvimento Web. JavaScript aula IV Acesso a documentos com Document Object Model (DOM) Professor: Bruno E. G. Gomes

CAPÍTULO 5 LINGUAGEM LEGAL E EXTENSÕES PROPOSTAS

Organização e Arquitetura de Computadores I

Estrutura de Dados Pilha (Stack)

BCC202 - Estrutura de Dados I

EAD Árvore árvore binária

Card Tree Creator. Um Sistema para a criação de árvores de cartões.

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Árvore Binária de Busca Ótima

Transformação de Chave - Hashing

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06

EAD Fila. - algumas operações realizam-se na frente/cabeça e outras na cauda da Fila

Memória Interna. Prof. Leonardo Barreto Campos 1

A linguagem SQL

Roteiro 8 Comandos SQL parte 2: Comandos DDL

Solucionador de circuitos lógicos em C++

Gerenciamento de Memória

Algoritmos e Estrutura de Dados II

JavaScript (Elementos de Programação e Programação Básica)

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

Matemática Discreta 10

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2

BANCO DE DADOS WEB AULA 12. manipulação de dados atualização e exclusão de registros. professor Luciano Roberto Rocha.

Sistema de Arquivos. Ciclo 5 AT1. Prof. Hermes Senger / Hélio Crestana Guardia

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15

Apostila de Excel 2007

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

Programação Básica. Estrutura de um algoritmo

No. de bits. O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086).

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

A arquitectura IA32. A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador.

Bem-vindo ao tópico sobre a ferramenta Importar do Excel.

Resolução de problemas por meio de busca. Prof. Pedro Luiz Santos Serra

ESTRUTURAS DE DADOS II MSc. Daniele Carvalho Oliveira

Arquitetura e Organização de Computadores

//Declaração do TAD pilha. // As operações definidas para esse tipo são criar() push() pop() destroi() // typedef struct pilha TPilha;

DISCIPLINA: TELEPROCESSAMENTO E REDES CURSO: CIÊNCIA DA COMPUTAÇÃO 6. SEMESTRE PROFESSOR: ANTONIO P. NASCIMENTO FILHO

Transcrição:

Capítulo 8: Abstrações de dados Ciência da computação: Uma visão abrangente 11a Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc.

Estruturas de dados básicas Matriz homogênea Matriz heterogênea Lista Pilha Fila Árvore Copyright 2012 Pearson Education, Inc. 0-2

Listas, pilhas e filas Fila Cabeça Topo Lista Pilha Cauda Base Cauda Cabeça Uma lista de nomes Uma Pilha de livros Uma Fila de pessoas Copyright 2012 Pearson Education, Inc. 0-3

Terminologia para listas Lista: Uma coleção de dados cujas entradas são arranjadas em seqüência Cabeça: O início da lista Cauda: O final da lista Copyright 2012 Pearson Education, Inc. 0-4

Terminologia para pilhas Pilha: Uma lista em que as entradas são removidas e inseridas apenas na cabeça LIFO: Last-in-first-out Topo: O cabeça de lista (pilha) Bottom ou base: A cauda da lista (pilha) Pop: Para remover a entrada na parte superior Push: Para inserir uma entrada no topo Copyright 2012 Pearson Education, Inc. 0-5

Terminologia para filas Queue: A list in which entries are removed at the head and are inserted at the tail FIFO: First-in-first-out Copyright 2012 Pearson Education, Inc. 0-6

Um exemplo de um organograma (árvore) Copyright 2012 Pearson Education, Inc. 0-7

Terminologia para uma árvore Árvore: Uma coleção de dados cujas entradas têm uma organização hierárquica Nó: Uma entrada em uma árvore Nó raiz (root): O nó no topo Terminal ou nó folha : um nó na parte inferior da árvore Copyright 2012 Pearson Education, Inc. 0-8

Terminologia para uma árvore (continuação) Pai: O nó imediatamente acima de um nó especificado Criança: Um nó imediatamente abaixo de um nó especificado Ancestral: Pai, pai de pai, etc.. Descendente: Filho, filho de filho, etc. Irmãos: Nós compartilhando um pai comum Copyright 2012 Pearson Education, Inc. 0-9

Terminologia para uma árvore (continuação) Árvore binária: uma árvore em que cada nó tem no máximo dois filhos. Profundidade: O número de nós no caminho mais longo da raiz até as folhas Copyright 2012 Pearson Education, Inc. 0-10

Terminologia de árvore Nó Raiz (Root) Irmãos Subárvore Nós folhas (terminais) Copyright 2012 Pearson Education, Inc. 0-11

Conceitos adicionais Estruturas de dados estáticas: O Tamanho e forma da estrutura de dados não altera Estruturas de dados dinâmicas: O Tamanho e forma da estrutura de dados podem mudar Ponteiros: Usados para localizar dados Copyright 2012 Pearson Education, Inc. 0-12

Armazenamento de Matrizes Matriz homogênea Ordem principal de linhas x Ordem principal de colunas Endereçamento Polinomial Matriz heterogênea Componentes podem ser armazenados um após o outro em um bloco contíguo Componentes podem ser armazenados em locais separados, identificados por ponteiros Copyright 2012 Pearson Education, Inc. 0-13

A matriz de leituras de temperatura armazenados na memória, iniciando no endereço x Endereços Células de Memória Copyright 2012 Pearson Education, Inc. 0-14

Uma matriz bidimensional com quatro linhas e cinco colunas armazenadas em ordem de linha principal Matriz Conceitual Linha Linha Linha Memória da Máquina Linha Linha Linha Linha Linha Entrada da 4ª coluna na 3ª linha Copyright 2012 Pearson Education, Inc. 0-15

Armazenar a matriz heterogênea empregado Endereços: Matriz armazenada em um bloco contíguo Componentes da Matriz armazenados em locais separados Copyright 2012 Pearson Education, Inc. 0-16

Armazenar listas Lista contígua: lista armazenada em uma matriz homogênea Lista encadeada: lista em que cada uma das entradas são ligadas através de ponteiros Head pointer: Ponteiro para a primeira entrada na lista NIL (NULL) pointer: Um valor padrão de "nãoponteiro" usado para indicar o final da lista Copyright 2012 Pearson Education, Inc. 0-17

Nomes armazenados na memória como uma lista contígua Bloco contíguo de células de memória Primeiro nome armazenado aqui Segundo nome armazenado aqui Último nome armazenado aqui Copyright 2012 Pearson Education, Inc. 0-18

A estrutura de uma lista encadeada Copyright 2012 Pearson Education, Inc. 0-19

Excluir uma entrada de uma lista encadeada Copyright 2012 Pearson Education, Inc. 0-20

Inserindo uma entrada em uma lista vinculada Copyright 2012 Pearson Education, Inc. 0-21

Armazenando Filas e Pilhas Pilhas normalmente são armazenadas como listas contíguas Filas geralmente são armazenadas como filas circulares Armazenados em um bloco contíguo no qual a primeira entrada é considerada a seguir a última entrada Evita que a fila estoure o espaço a ela alocado Copyright 2012 Pearson Education, Inc. 0-22

Uma pilha na memória Base da Pilha Espaço de memória reservado Entradas da Pilha Espaço disponível Ponteiro da Pilha Copyright 2012 Pearson Education, Inc. 0-23

Uma implementação de fila com ponteiros de início (cabeça) e fim (cauda) Ponteiro de Cabeça Ponteiro de Cauda Ponteiro de Cabeça Ponteiro de Cauda Fila Vazia Após a inserção de A, B e C Ponteiro de Cabeça Ponteiro de Cauda Ponteiro de Cabeça Ponteiro de Cauda Após remover A e inserir D Após remover B e inserir E Copyright 2012 Pearson Education, Inc. 0-24

Armazenamento de árvores binárias Estrutura Encadeada Cada nó = células de dados + dois ponteiros de filhos Acessado através de um ponteiro para o nó raiz Estrutura de matriz contígua A[1] = nó raiz A[2],A[3] = filhos de A[1] A[4],A[5],A[6],A[7] = filhos de A[2] e A[3] Copyright 2012 Pearson Education, Inc. 0-25

Uma fila circular que contém as letras P a V 1ª célula do bloco 1ª célula do bloco Ponteiro de Início Ponteiro de Fim Ponteiro de Início Ponteiro de Fim Última célula do bloco O armazenamento conceitual, com a última célula adjacente a primeira célula Última célula do bloco A fila como está realmente armazenada Copyright 2012 Pearson Education, Inc. 0-26

A estrutura de um nó em uma árvore binária Células contendo os Dados Ponteiro do filho da esquerda Ponteiro do filho da direita Copyright 2012 Pearson Education, Inc. 0-27

A organização conceitual e real de uma árvore binária, usando um sistema de armazenamento encadeado Árvore Conceitual Organização de armazenamento real Ponteiro p/raiz Copyright 2012 Pearson Education, Inc. 0-28

Uma árvore armazenada sem ponteiros Árvore Conceitual Organização de armazenamento real Ponteiro p/raiz Nó raiz Nós no 2º nível da árvore Nós no 3º nível da árvore Copyright 2012 Pearson Education, Inc. 0-29

Uma árvore esparsa, desbalanceada, mostrada em sua forma conceitual e como ele seria armazenada sem ponteiros Árvore Conceitual Organização de armazenamento real Raiz 2º Nível 3º Nível 4º Nível Copyright 2012 Pearson Education, Inc. 0-30

Manipulação de estruturas de dados Idealmente, uma estrutura de dados deve ser manipulada unicamente por procedimentos pré-definidos. Exemplo: Uma pilha tipicamente precisa de pelo menos os procedimentos push e pop A estrutura de dados juntamente com esses procedimentos constitui uma ferramenta abstrata completa. Copyright 2012 Pearson Education, Inc. 0-31

Tipo de dados definido pelo usuário Um modelo para uma estrutura heterogênea Exemplo: define type EmployeeType to be {char } int real Name[25]; Age; SkillRating; Copyright 2012 Pearson Education, Inc. 0-32