260 likes | 362 Views
INE 5384 Estruturas de Dados Prof a . Patrícia Vilain 2003.2. Conteúdo. 1. Introdução 2. Listas 3. Listas Ordenadas 4. Filas 5. Pilhas 6. Árvores • Árvore Binária e Árvore AVL • Árvore N-ária e Árvore B 7. Tabelas de Dispersão (Hashing) 8. Métodos de Ordenação de Dados.
E N D
INE 5384 Estruturas de Dados Profa. Patrícia Vilain 2003.2
Conteúdo 1. Introdução 2. Listas 3. Listas Ordenadas 4. Filas 5. Pilhas 6. Árvores • Árvore Binária e Árvore AVL • Árvore N-ária e Árvore B 7. Tabelas de Dispersão (Hashing) 8. Métodos de Ordenação de Dados
Introdução Programa de computador: Algoritmos + Dados As estruturas de dados são formas de distribuir e relacionar os dados disponíveis, de modo a tornar mais eficientes os algoritmos que manipulam esses dados.
Exemplos Problema 1: Manipular um conjunto de fichas em um fichário. Solução: Organizar as fichas em ordem alfabética. Operações possíveis: Inserir ou retirar uma ficha, procurar uma ficha, etc. Estrutura de dados correspondente: ???
Exemplos Problema 1: Manipular um conjunto de fichas em um fichário. Solução: Organizar as fichas em ordem alfabética. Operações possíveis: Inserir ou retirar uma ficha, procurar uma ficha, etc. Estrutura de dados correspondente: LISTA (seqüência de elementos dispostos em ordem)
Exemplos Problema 2: Organizar as pessoas que querem ser atendidas em um guichê. Solução: Colocar as pessoas em fila. Operações possíveis: Quando uma pessoa é atendida, ela sai da fila; pessoas podem entrar no final da fila; não é permitido “furar” a fila. Estrutura de dados correspondente: ???
Exemplos Problema 2: Organizar as pessoas que querem ser atendidas em um guichê. Solução: Colocar as pessoas em fila. Operações possíveis: Quando uma pessoa é atendida, ela sai da fila; pessoas podem entrar no final da fila; não é permitido “furar” a fila. Estrutura de dados correspondente: FILA (seqüência de elementos dispostos de maneira que o primeiro que chega é o primeiro que sai)
Exemplos Problema 3: Organizar um conjunto de pratos que estão sendo lavados, uma a um, em um restaurante. Solução: Colocar os pratos empilhados. Operações possíveis: Colocar um prato limpo no alto da pilha; retirar um prato do alto da pilha; etc. Estrutura de dados correspondente: ???
Exemplos Problema 3: Organizar um conjunto de pratos que estão sendo lavados, uma a um, em um restaurante. Solução: Colocar os pratos empilhados. Operações possíveis: Colocar um prato limpo no alto da pilha; retirar um prato do alto da pilha; etc. Estrutura de dados correspondente: PILHA (seqüência de elementos dispostos de maneira que o último que chega é o primeiro que sai)
Exemplos Problema 4: Conseguir um modo de visualizar o conjunto de pessoas que trabalham em uma empresa, considerando sua função. Solução: Construir um organograma da empresa. Operações possíveis: Inserir ou retirar certas funções, localizar uma pessoa, etc. Estrutura de dados correspondente: ???
Exemplos Presidente Diretor Comercial Diretor Administrativo Diretor de Planejamento Gerente Depto A Gerente Depto B Gerente Depto C Gerente Depto D Gerente Depto E Gerente Depto F
Exemplos Problema 4: Conseguir um modo de visualizar o conjunto de pessoas que trabalham em uma empresa, tendo em conta sua função. Solução: Construir um organograma da empresa. Operações possíveis: Inserir ou retirar certas funções, localizar uma pessoa, etc. Estrutura de dados correspondente: ÁRVORE (estrutura de dados que caracteriza uma relação de hierarquia entre os elementos)
Exemplos Presidente Diretor Comercial Diretor Administrativo Diretor de Planejamento Gerente Depto A Gerente Depto B Gerente Depto C Gerente Depto D Gerente Depto E Gerente Depto F
Estrutura de Dados A eficiência de um algoritmo está intimamente relacionada com a estrutura de dados utilizada pelo programa.
Disciplina: INE 5384 – Estruturas de Dados Semestre: 2003/2 Turma: B Matrícula Nome 99065-4 Adriana 97177-9 Adriano ... 97143-3 Ana ... ... 98996-3 Zaqueu Exemplo - Folha de Chamada Exemplo: Programa para a geração da folha de chamada das disciplinas Manipula dados a respeito de nomes de alunos
Exemplo - Folha de Chamada • Como organizar (estruturar) estes dados de modo que possam ser manipulados pelos algoritmos do programa? • Modelagem Lógica: definição de uma estrutura lógicapara manter os dados e seus relacionamentos. • Modelagem Física: implementação da estrutura lógica em uma estrutura física disponível em uma linguagem de programação.
Modelagem Lógica • Definição de uma estrutura abstrata(estrutura lógica) para manter os dados e seus relacionamentos. Exemplo: estrutura para representar os nomes de alunos Lista Por quê uma Lista? • Porque existe a noção de seqüência: • Relacionamentos sucessor e predecessor / primeiro e último • Esta noção é importante para as operações do programa: • Ordenar, pesquisar Adriana Adriano Ana . . . Zaqueu
1 2 3 . . . 34 . . . 50 Adriana Adriano Ana . . . Zaqueu . . . Modelagem Física • Implementação da estrutura lógica em uma estrutura de armazenamento(estrutura física) disponível em uma linguagem de programação. Exemplo: implementacão da lista de nomes de alunos usando um Array ListaAlunos:
Modelagem Física Diversas alternativas de estruturas físicas podem implementar uma estrutura lógica: • Array • Encadeamento (uso de referências) Neste curso, as estruturas de dados serão implementadas usando OO.
Modelagem Física A escolha pela melhor alternativa de estrutura física depende de alguns fatores: • Número de dados fixo ou variável • Quantidade de dados • Operações a realizar sobre os dados • ...
Modelagem Física Exemplos de avaliação de fatores: • Necessita-se pesquisar um número fixo de dados em uma lista: Array pode ser a melhor opção • Necessita-se inserir freqüentemente novos dados na lista de forma ordenada: Encadeamento pode ser a melhor opção
Estrutura de Dados Exemplos de estruturas de dados • Listas • Filas • Árvores • Pilhas • Grafos • . . .
Estruturas de Dados Aplicadas a várias áreas da Ciência da Computação: • Banco de Dados: • Resultados de consulta (listas de dados) • Indexação de arquivos de dados (árvores de busca) • Sistemas Operacionais: • Controle de processos (filas de espera por recurso) • Computação Gráfica: • Manipulação de imagens (matrizes) • Compiladores: • Validação de instruções de uma LP - (pilha de instruções sendo reconhecidas)
Estrutura de Dados e T.A.D. Uma estrutura de dados é um T.A.D. Tipo Abstrato de Dados (T.A.D.): abstração de um dado do mundo real: • Ênfase em atributos e operações (métodos) relevantes sobre elas • Omissão de atributos irrelevantes Exemplo: T.A.D. Pessoa • Abstração 1 • Atributos: nome, estadoCivil, sexo • Métodos: informaSexo, alteraEstadoCivil • Abstração 2 • Atributos: nome,idade, peso, altura • Métodos: fazAniversário, alteraPeso
Estrutura de Dados e T.A.D. Uma estrutura de dados é um T.A.D. possui atributos e métodos Exemplo: ListaAlunos • Atributos: • VetorAlunos: vetor de 50 posições de inteiros • Tamanho: número de dados no vetor • Métodos: • InsereAlunoOrdenado (Aluno a) • RetornaPosiçãoAluno (Alunoa) • EstáCheia?