ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1

Slides:



Advertisements
Apresentações semelhantes
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Advertisements

TIPOS ABSTRATOS DE DADOS
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Estruturas de Dados Marcio Gonçalves.
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Arquitetura e organização de computadores
TADS – Tipos Abstratos de Dados
Prof. Heloise Manica Paris Teixeira
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Pesquisa em Memória Primária
David Menotti Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Construção de Compiladores
Noções de Estrutura de Dados Logica de Programação
Unidades de Armazenamento
Robson Godoi / Sandra Siebra
Listas Encadeadas.
Paradigmas de programação
Prof.° Jean Daniel Henri Merlin Andreazza Estrutura de Dados
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Professor Reverton de Paula Faculdade Anhanguera de Indaiatuba
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
JAVA: Conceitos Iniciais
Listas Lineares Estrutura de Dados.
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 6 Vetores e Matrizes
Linguagem de Programação II Parte V
Linguagem de Programação II Parte IX
Sistemas Operacionais
Listas lineares Denise Guliato Faculdade de Computação – UFU
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estrutura de dados, pseudocódigo
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Introdução a Programação
Tipos de Dados Paradigmas de Programação
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Aula 3 Vetores e Listas. Arrays (vetores) Array – sequência de elementos do mesmo tipo. Tamanho do Array – seu número de elementos (número fixo) Consequência:
Listas, Filas e Pilhas Katia Guimarães.
Aula 3 Listas, pilhas, filas.
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
Estruturas de Dados Aula 9: Listas (parte 1)
Prof. Mateus Raeder Professor.unisinos.br/mraeder
Estruturas de Dados PROFESSOR DIÓGENES FURLAN. Estruturas de Dados (ED) Programas operam sobre dados Dados são relacionados e possuem estrutura Como representar.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Listas.
SISTEMAS OPERACIONAIS I
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Vetores Bidimensionais – Debug - Ponteiros – Listas Encadeadas Simples
Tabela Hash Alunos : Gustavo Jorge Zanin nºUSP
Lista Linear Base para outras estruturas
Fundamentos de linguagens de programação
JAVA – Fila ATAI.
Estrutura de Dados II Alocação Dinâmica. Alocação de memória Ao ser executado, um programa carrega seu código executável para a memória; Uma parte da.
Objetivos Ao concluir esta Disciplina espera-se que os alunos sejam capazes de: Distinguir os conceitos de Estrutura e Dados; Compreender o que são, como.
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Estruturas de Dados Dinâmicas IF672 - Algoritmos e Estruturas de Dados.
Estruturas de Dados Murilo Salgado Razoli.
Estrutura de Dados Aula 3 - Listas
Profa. Juliana Mafra ESTRUTURA DE DADOS 30 de Setembro de 2009 Faculdade de Informática e Tecnologia de Pernambuco.
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Estrutura de Dados Prof. André Cypriano M. Costa
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Transcrição da apresentação:

ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1 Período Letivo: 2013/2 Carga Horária: 80 horas Período da disciplina: 19/09 a 17/10/2013 Número de Avaliações: 3

OBJETIVO DA DISCIPLINA “Possibilitar aos alunos a utilização otimizada das diversas estruturas de dados apresentadas, levando em consideração o problema a ser resolvido ou otimizado, e também o contexto no qual ocorre esse problema.”

ABSTRAÇÃO DE DADOS Um processo é qualquer seqüência finita e ordenada de passos que visa promover transformações definidas sobre uma determinada matéria-prima. Se denominamos entrada a matéria-prima no seu estado inicial; e saída o que se obtém após as transformações realizadas pelo processo, temos o esquema geral a seguir: Matéria-prima abstrata: é processamento de dados.   Abstrata: apresenta-se sob a forma de valores.   Processamento realizado pelo computador: Entrada: dados colhidos do mundo real externo ao computador; Processo: série finita de operações que são realizadas a partir desses dados; Saída: transformação sofrida pelos dados através de um processo.

TIPOS DE DADOS (TDS)   Embora os termos "tipos de dados", "estruturas de dados" e "tipos abstratos de dados" sejam parecidos, têm significados diferentes. Em linguagens de programação o tipo de dados de uma variável define o conjunto de valores que a variável pode assumir. Exemplo: BOOLEAN pode assumir valores TRUE ou FALSE. A declaração de uma variável em Pascal especifica duas coisas: Quantidade de bytes reservados para a variável (ex. 2bytes); Como o dado representado por esses bytes pode ser interpretado. (ex. 2 bytes = 16 bits = 65536 combinações. Um integer é interpretado de -32767 a 32768 sendo o ponto "zero" bem no meio desses dois bytes). Tipos de Dados: São métodos para interpretar o conteúdo da memória do computador. Exemplo de conjunto básico de tipos de dados primitivos (inteiro, real, caractere, lógico) oferecidos pelas linguagens de programação; e agrupamentos complexos de dados desses tipos primitivos (vetor, registro, ponteiro).

TIPOS ABSTRATOS DE DADOS (TADS) TAD - formado por um conjunto de valores e uma série de funções que podem ser aplicadas sobre estes valores. Funções + valores (em conjunto) = modelo matemático empregado para "modelar" e solucionar problemas do mundo real:   Especifica características relevantes dos objetos envolvidos no problema; Especifica forma com que eles se relacionam; e Especifica como podem ser manipulados.

TIPOS ABSTRATOS DE DADOS (TADS) TAD não leva em consideração como os valores são representados na memória do computador e nem se preocupa com o "tempo" gasto para aplicar as funções sobre tais valores. Exemplos:   Listas; Pilhas; Filas;

AS ESTRUTURAS DE DADOS (EDS) É um método particular de implementar um TAD. A implementação de um TAD escolhe uma ED para representá-lo. Cada ED é constituída de tipos básicos (integer, char, real) ou dos tipos estruturas (array, record) de uma linguagem.

OBJETIVO DAS ESTRUTURAS DE DADOS: Teórico: Identificar e desenvolver modelos matemáticos, determinando que classes de problemas podem ser resolvidos com o uso deles. Prático: Criar representações concretas dos objetos e desenvolver rotinas capazes de atuar sobre essas representações, de acordo com o modelo considerado.

LISTAS LINEARES É uma estrutura que armazena elementos de forma alinhada, ou seja, com elementos dispostos um após o outro, como em uma lista de nomes, peças, valores, pessoas, compras, etc.

FUNDAMENTOS Uma Lista Linear, é uma coleção L: [a1, a2, ..., an], n>=0, cuja propriedade estrutural baseia-se apenas na posição relativa dos elementos, que são dispostos linearmente. Se n=0, dizemos que a lista L é vazia; caso contrário, são válidas as seguintes propriedades: a1 é o primeiro elemento de L; an é o último elemento de L;

Característica fundamental de uma lista linear é o sentido de ordem unidimensional dos elementos que a compõem. Assim, não temos dúvida onde inicia ou termina a lista. Algumas operações com listas:   acessar um elemento qualquer; inserir um elemento numa posição específica; remover um elemento de uma posição específica; combinar duas listas em uma única; particionar uma lista em duas; obter cópias de uma lista; determinar o total de elementos na lista; ordenar os elementos da lista; procurar um determinado elemento na lista; apagar uma lista; outras...

Uma lista com um array, pode ser implementada como uma seqüência de records com elementos disponíveis:   de forma consecutiva - Lista Estática Seqüencial; de forma não consecutiva - Lista Estática Encadeada; Uma lista pode ser ordenada ou não. Pascal permite construir EDs avançadas - Lista Dinâmicas; mais versáteis, utilizando ponteiros e variáveis dinâmicas. Considerando apenas operações de acesso, inserção e remoção restritas aos extremos das listas, temos casos especiais: Pilha: inserção, remoção, acesso realizados em um único extremo. Lista LIFO. Fila: inserção num extremo e remoção, acesso no outro extremo. Lista FIFO.

ALOCAÇÃO DE MEMÓRIA Para implementar uma lista linear: como podemos armazenar os elementos da lista dentro do computador? Alocar área de memória é responsabilidade do programador e estará em uma das quatro categorias abaixo:

ALOCAÇÃO ESTÁTICA X ALOCAÇÃO DINÂMICA Quantidade total de memória utilizada pelos dados é previamente conhecida e definida de modo imutável, no próprio código-fonte do programa. Durante o programa não varia a quantidade de memória.   ALOCAÇÃO DINÂMICA: Programa cria novas variáveis enquanto executa, ou seja, áreas de memórias não declaradas no programa passam a existir durante a execução.

Um ponteiro é uma variável que contém o endereço da memória de outra variável ou estrutura de dados.