ESTRUTURA DE DADOS by Mg7kd8

VIEWS: 62 PAGES: 15

									Faculdade de Informática e Tecnologia de Pernambuco




ESTRUTURA DE DADOS


          Profa. Juliana Mafra
        (jmafra.pe@gmail.com)




         21 de Setembro de 2009
    Ementa
     Introdução às Estruturas de Dados
     Estruturas Elementares
     Algoritmos de Ordenação e Recursão
     Árvores e Grafos
     Algoritmos para Estruturas Complexas




2   ESTRUTURA DE DADOS                       Profa. Juliana Mafra
    Objetivo Geral

     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.




3   ESTRUTURA DE DADOS                          Profa. Juliana Mafra
    Objetivos Específicos
     Fornecer domínio da alocação dinâmica de memória;

     Apresentar  as principais estruturas de dados e suas
      implementações, em termos de representação física e algoritmos
      de manipulação, guiando-se pelo conceito de tipos abstratos de
      dados;

     Apresentar os principais processos de pesquisa e classificação de
      dados;

     Introduzir aspectos básicos da complexidade de algoritmos;

     Consolidar os conhecimentos sobre programação previamente
      adquiridos, utilizando estruturas de dados em aplicações
      particulares.


4   ESTRUTURA DE DADOS                                       Profa. Juliana Mafra
    Metodologia

     A   disciplina será trabalhada com aulas
      expositivo-dialogadas, onde serão fornecidos os
      componentes teóricos e será feita a prática de
      exercícios.




5   ESTRUTURA DE DADOS                        Profa. Juliana Mafra
    Bibliografia
     Livro Texto:
       Veloso, P.A . da S. – Estrutura de Dados –Editora Campus,
         1983.

     Livros de Referência:
       Horowitz, E e Shani, S. - Fundamentos de Estruturas de
         Dados - Editora Campus, Rio de Janeiro, 1983.

     Referências Complementares:
       Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest,
         Clifford Stein - Algoritmos: Teoria e Prática, Editora
         Campus, Rio de Janeiro, 2002.


6   ESTRUTURA DE DADOS                                   Profa. Juliana Mafra
    Introdução às Estruturas de Dados

             Tipo Abstrato de Dados (TDA)




    ESTRUTURA DE DADOS
7   Profa. Juliana Mafra
    Tipos de Dados

     Define a forma como um dado deve ser armazenado ou
      recuperado, bem como os possíveis valores que ele pode
      assumir e as operações que podem ser efetuadas sobre os
      mesmos.

       Exemplo em Pascal:
          integer - permite valores inteiros e operações de adição, multiplicação,
                      subtração e divisão;
          string - permite valores literais e operações de concatenação;


       Obs. Esses tipos estão intrinsecamente relacionados com o hardware.

8   ESTRUTURA DE DADOS                                             Profa. Juliana Mafra
    Tipo Abstrato de Dados (TAD)
     Um tipo    abstrato de dados (TAD) é a especificação
      matemática de um conjunto de dados e das operações que
      podem ser executadas sobre esses dados.

     O conceito de tipo de dado abstrato é dissociado do hardware.


     TAD define o que cada operação faz, mas não como faz.


     Assim,   um mesmo tipo abstrato de dados pode ser
      concretizado (ou implementado) de diversas formas.


9   ESTRUTURA DE DADOS                                  Profa. Juliana Mafra
     Tipo Abstrato de Dados (TAD)
      TADs são materializados pelas estruturas de dados.
        – Lista Encadeada (implementação com referências)
        – Lista com alocação estática (implementação usando array)


      Estruturas de dados são formas genéricas de se estruturar
       informação de modo a serem registradas e processadas pelo
       computador.

      Contudo, estas só    adquirem significado quando associadas
       a um conjunto de operações, que visam, de um modo
       geral, manipulá-las (algoritmos).


10   ESTRUTURA DE DADOS                                              Profa. Juliana Mafra
     TAD em C
      Uma boa técnica de programação é implementar os TADs em
       arquivos separados do programa principal.

      Para isso, geralmente separa-se a declaração e a implementação
       do TAD em dois arquivos:
        NomeDoTAD.h: com a declaração
        NomeDoTAD.c: com a implementação


      O programa ou outros TADs que utilizam o seu TAD devem dar
       um #include no arquivo.h




11     ESTRUTURA DE DADOS                                Profa. Juliana Mafra
     TAD:Exemplo
      Implemente um TAD ContaBancaria, com os campos número e
       saldo onde os clientes podem fazer as seguintes operações:

        Iniciar uma conta com um número e saldo inicial
        Depositar um valor
        Sacar um valor
        Imprimir o saldo


      Faça um pequeno programa para testar o seu TAD.




12     ESTRUTURA DE DADOS                                  Profa. Juliana Mafra
     ContaBancaria.h
     // definição do tipo
     typedef struct{
      int numero;
      double saldo;
     }ContaBancaria;


     // cabeçalho das funções
     void Inicializa(ContaBancaria* conta, int numero, double saldo);
     void Deposito(ContaBancaria* conta, double valor);
     void Saque(ContaBancaria* conta, double valor);
     void Imprime(ContaBancaria conta);




13      ESTRUTURA DE DADOS                                              Profa. Juliana Mafra
     ContaBancaria.c
     #include <stdio.h>
     #include "ContaBancaria.h”
     void Inicializa(ContaBancaria* conta, int numero, double saldo) {
         (*conta).numero = numero;
         (*conta).saldo = saldo;
     }
     void Deposito(ContaBancaria* conta, double valor){
         (*conta).saldo += valor;
     }
     void Saque(ContaBancaria* conta, double valor){
         (*conta).saldo -= valor;
     }
     void Imprime(ContaBancaria conta){
         printf(" Numero: %d \n", conta. numero);
         printf(" Saldo: %f \n", conta.saldo);
     }
14       ESTRUTURA DE DADOS                                              Profa. Juliana Mafra
     Main.c
     #include <stdio.h>
     #include <stdlib.h>
     #include "ContaBancaria.h“
     int main(int argc, char *argv[])
     {
         ContaBancaria conta1;
         Inicializa(&conta1,918556,300.00);
         printf("\n Antes da movimentacao: \n");
         Imprime(conta1);
         Deposito(&conta1, 50.00);
         Saque(&conta1, 70.00);
         printf("\n Depois da movimentacao: \n");
         Imprime(conta1);
     }


15        ESTRUTURA DE DADOS                        Profa. Juliana Mafra

								
To top