A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Estruturas de Dados Murilo Salgado Razoli.

Apresentações semelhantes


Apresentação em tema: "Estruturas de Dados Murilo Salgado Razoli."— Transcrição da apresentação:

1 Estruturas de Dados Murilo Salgado Razoli

2 Estruturas de Dados Estruturas de dados são formas de armazenamento e organização de dados na memória de um computador, podem ser usadas em diversos tipos de aplicações.

3 Estruturas de Dados Clássicas
Vetores( Arrays); Lista; Pilha; Filas; Grafos; Árvores: Árvores Binárias. “Estrutura de dados é o ramo da computação que estuda os diversos mecanismos de organização de dados para atender aos diferentes requisitos de processamento; TAD Estrutura de Dados Programa

4 Uma Estrutura de Dados pode ser dividida em dois pilares fundamentais: Dados e Estrutura
Elemento que possui valor agregado e que pode ser utilizado para solucionar problemas computacionais. Estrutura Elemento Estrutural que é responsável por carregar informações dentro de uma estrutura de software Dados -Inteiro (int) -Texto (string) -Caracter (char) -Ponto flutuante (float, double) Estrutura -Vetores unidimensionais, multidimensionais -Pilhas -Filas -Listas -etc...

5 TAD – Tipo Abstrato de Dados
“Um tipo abstrato de dados define uma classe de objetos abstratos que é completamente caracterizada pelas operações disponíveis nestes objetos. Isto significa que um tipo abstrato de dados pode ser definido pela definição e caracterização das operações daquele tipo” (Liskov, 1974).

6 Tipos Abstratos de Dados (TAD)
Vantagens: Usam a TAD por meio da interface de acesso; Sem conhecer os detalhes de representação. Não acessam o módulo de implementação; Idealmente, a implementação é “invisível”; Programador usa TAD e cria uma lista de clientes e aplica operações sobre ela, sem saber como ela é representada internamente.

7 Funções que interagem com os dados. Ex:
Tipos Abstratos de Dados ou “TAD”: incluímos operações para a manipulação desses dados. Funções que interagem com os dados. Ex: - Criação da Estrutura; - Inclusão de um Elemento; - Remoção de um Elemento; - Acesso a um Elemento ; - Etc... Encapsulamento e Segurança; Flexibilidade e Reutilização;

8 Separa a Implementação da Aplicação.
Exemplo: “TAD” Separa a Implementação da Aplicação. Linguagem C - Descomplica

9 Lista Em geral as operações que podem ser realizadas em uma lista são:
Inicializar Inserir Buscar Acessar Eliminar Cadastro de funcionários Tamanho da Lista Destruir...

10 Exemplos: Lista Telefônica; Lista de clientes de uma agência bancária;
Lista de setores de disco a serem acessados por um sistema operacional;

11 Lista Estática e Lista Dinâmica
O espaço da memória é Alocado no momento da Compilação; Exige um número máximo de Elementos; Acesso Sequencial; Lista Dinâmica: O espaço da memória é alocado em tempo de execução. A lista cresce à medida que novos elementos são armazenados, e diminui à medida que elementos são removidos. Acesso encadeado.

12 Características Importantes:
Consequência: As quatro primeiras operações são feitas em tempo constante. As demais, porém, requererão mais cuidados. Desvantagem: Movimentação quando eliminado/inserido elemento; Tamanho máximo pré –estimado; Vantagem: Acesso direto indexado a qualquer elemento da lista Tempo constante para acessar o elemento i - dependerá somente do índice. Quando usar: Listas pequenas Inserção/remoção no fim da lista Tamanho máximo bem definido

13

14 Lista Encadeada Dinâmica
Representada por ponteiros. ~Quando utilizar essa “Lista”? Alocamos na memória ‘nó’ por ‘nó’

15 Características Desvantagens: Vantagens:
Necessidade de percorrer a lista para acessar um elemento. Acesso Indireto aos elementos. Vantagens: Melhor utilização dos recursos de memória. Não precisa movimentar os elementos nas operações de inserção e remoção.

16 Lista Duplamente Encadeada
Um tipo de Lista onde cada elemento aponta para o seu sucessor e antecessor da na “Lista”

17 Implementação: Algoritmo Cadastro de Funcionários.

18 Pilha (Stack) A estrutura denominada pilha implementa o conceito de FILO (First-In, Last- Out) ; Nessa estrutura, cada elemento armazena um ou vários dados e um ponteiro para o próximo elemento; Aplicações: Inserção, consulta, remoção e esvaziar. TOPO;

19

20 Uma Pilha é um tipo especial de “Lista”
- Inserções e exclusões de elementos ocorrem apenas no inicio da “lista”

21 Aplicações Verificação de parênteses. Retirada de vagões de um trem.
Retirada de mercadorias em um caminhão de entregas.

22 Alocação dinâmica Alocação estática Aplicações:
O espaço de memória é alocado em tempo de execução. Alocação estática O espaço de memória é alocada no momento da compilação. Aplicações: Análise de uma expressão matemática Avaliação de expressão pós-fixa

23 Calculadora pós fixada
Um bom exemplo de aplicação de pilha é o funcionamento das calculadoras da HP (Hewlett-Packard). (1 – 2) * (4 + 5) assim: 1 2 – * .

24

25 Algoritmo Stack (Array Implemetation)
Algoritmo - Pilha Estática em um Vetor:

26 Pilha Dinâmica Cada elemento aponta para o seu sucessor na “pilha”.
Usa um ponteiro especial (ponteiro para ponteiro) para o primeiro elemento da “pilha ” e uma indicação de final de “pilha”

27 Assim as operações do TAD são as seguinte:
Inicializa Pilha; Pilha Vazia; Empilha; Desempilha.

28 Algoritmo Stack (Linked List Implementaion)
Algoritmo - Pilha Dinâmica em um Vetor:

29 Grafos É um modelo matemático que representa relações entre objetos
Permite Representar: Cidades e Estradas Computadores e Conexões de Rede Pessoas e Relacionamentos Representa pontos e ligações entre eles: Vértices e Arestas.

30 Problemas Reais

31 Grafos: É definido como um conjunto de vértices e um conjunto de arestas que conectam qualquer par de vértices. G = (V,A) V é o conjunto de vértices (não vazio). A é o conjunto de arestas. Se G(V,A), V = {1,2,3,4} A = ({1,2},{1,4},{2,3},{3,4}) Uma aresta sempre conecta dois vértices (v1,v2). 1 2 4 3

32 Grau de um vértice e Laço
Grau de Entrada: Arestas que chegam no vértice. Grau de Saída: Arestas que partem do vértice.

33

34 Tipos de Grafos Representação de Grafos:
Como representar um grafo no computador? Linguagens C, Java... Duas Abordagens são muito utilizadas: “Matriz de Adjacência” “Lista de Adjacência”

35 Matriz de Adjacência Algumas características:
Uma matriz NxN utilizada para armazenar o grafo, onde N é o número de vértices. Alto custo computacional , (N^2). Uma aresta é representada por uma ”marca” na posição (i,j) da matriz.

36 Ideia de Representação:

37 Ideia de Representação:

38 Lista de Adjacência

39

40 Curiosidade Algoritmo de Dijkstra

41 Bibliografia http://pt.slideshare.net/mcastrosouza/grafos-representao
dados-lista-pilha-fila-e-arvores-com-exerccios

42 dados/slides/Aula9(listas).pdf


Carregar ppt "Estruturas de Dados Murilo Salgado Razoli."

Apresentações semelhantes


Anúncios Google