TAD
Prof. Clayton Almeida
Qual a diferença entre um algoritmo e um programa?
Algoritmos e Estruturas de Dados
Algoritmo:
Sequência de ações executáveis para a solução de um determinado tipo de problema
Exemplo: “Receita de Bolo”
Em geral, algoritmos trabalham sobre
Estruturas de Dados
Conjunto de dados que representa uma situação real
Abstração da realidade
Estruturas de Dados e Algoritmos estão intimamente ligados
Representação dos Dados
Dados podem estar representados
(estruturados) de diferentes maneiras
Normalmente, a escolha da representação é determinada pelas operações que serão utilizadas sobre eles
Exemplo: números inteiros
Representação por palitinhos: II + IIII = IIIIII
Boa para pequenos números (operação simples)
Representação decimal: 1278 + 321 = 1599
Boa para números maiores (operação complexa)
Programas
Um programa é uma formulação concreta de um algoritmo abstrato, baseado em representações de dados específicas
Os programas são feitos em alguma linguagem que pode ser entendida e seguida pelo computador
Linguagem de máquina
Linguagem de alto nível (uso de compilador)
Aqui vamos utilizar a Linguagem C
Tipos Abstratos de Dados (TADs)
Agrupa a estrutura de dados juntamente com as operações que podem ser feitas sobre esses dados
O TAD encapsula a estrutura de dados. Os usuários do TAD só tem acesso a algumas operações disponibilizadas sobre esses dados
Usuário do TAD x Programador do TAD
Usuário só “enxerga” a interface, não a implementação Tipos Abstratos de Dados (TADs)
Dessa forma, o usuário pode abstrair da implementação específica.
Qualquer modificação nessa implementação fica restrita ao TAD
A escolha de uma representação específica é fortemente influenciada pelas operações a serem executadas
Implementação de TADs
Em linguagens orientadas a objeto (C++, Java) a implementação é feita através de classes
Em linguagens estruturadas