Índice > TAD

Instituto de Ciências Matemáticas de São Carlos
Departamento de Computação e Estatística
SCE182 - Algoritmos e Estruturas de Dados I
Profs. Resp.: Graça Pimentel e Maria Cristina

Tipo Abstrato de Dados

É definido como um modelo matemático pelo par (v,o) onde v é um conjunto de valores e o é um conjunto de operações sobre esses valores.
Exemplo: tipo real associado aos seus valores e operações válidas.

Uma vez que um TAD é definido e as operações associadas são especificadas, nós podemos implementar aquele tipo de dado.
A característica essencial de um TAD é a separação entre conceito e implementação.

O termo "ocultamento de informação" é utilizado para descrever esta habilidade. Ao usuário são fornecidos a descrição dos valores e o conjunto de operações do TAD, mas a implementação é invisível e inacessível.
A separação da definição do TAD de sua implementação permite que a mudança de implementação não altere o programa que usa o TAD.

O TAD é compilado separadamente, e uma mudança força somente a compilação, de novo, do módulo envolvido (seguida de link,etc.)
Exemplo: TAD dicionário INGLÊS-PORTUGUÊS (v,o)

Pascal permite implementar TAD ?
Não totalmente, como fazem Módula-2 e ADA. As UNITS em Pascal representam meio caminho andado nessa direção.
Exemplo: Interface de um TAD em Módula-2

Definition Module complex;

  Export Qualified

    complex number, define, assign1, soma ...
      (tipo)		(operações)

  Type complex number;

  Procedure Define (var c: complex number);

  Procedure Assign1 (real, imag: real): complex number;

Procedure Soma (c1, c2: complex number): complex number; 

END complex;     

Há dois arquivos em Módula-2: definição e implementação
Duas possíveis Estruturas de Dados para o TAD complex number:

  Type complex number = POINTER TO
                          RECORD
                             real: REAL
                             imag: REAL
                          END;

                      = POINTER TO
			  ARRAY [1..2] of REAL;     


Índice