Um Tipo Abstrato de Dados (TAD) pode ser definido por uma coleção bem definida de dados a serem armazenados, e um grupo de operadores que podem ser aplicados para manipulação desses dado. Da mesma forma, pode ser visto como um modelo matemático que encapsula um modelo de dados e um conjunto de procedimentos que atuam com exclusividade sobre os dados encapsulados.
Características fundamentais:
- Os operadores do TAD implementam regras bem definidas para manipulação dos valores armazenados;
- Os valores armazenados devem ser manipulados EXCLUSIVAMENTE pelos operadores do TAD.
Qualquer processamento a ser realizado sobre os dados encapsulados em um TAD só poderá ser executada por intermédio dos procedimentos definidos no modelo matemático do TAD, sendo esta restrição a característica operacional mais útil dessa estrutura.
A especificação de um TAD descreve quais dados podem ser armazenados, e o que é possível fazer com esses dados através dos operadores do TAD. Mas a especificação do TAD não descreve como isso é ou será efetivamente implementado no programa. Isso pode ser definido em um segundo momento. Ou seja, um Tipo Abstrato de Dado é um modelo abstrato do armazenamento e manipulação de um determinado conjunto de dados de um programa.
Para entender melhor vamos fazer uma analogia à TV, representada na tabela abaixo.
Tomando a TV como um programa, temos som e canal como grupo de dados desse programa. Para modificar esse dados usaríamos o grupo de operadores que, no mundo real, seriam os botões de aumentar volume, diminuir volume e mudar de canal. Modificar os dados sem usar os operadores é como se estivéssemos abrindo a televisão e modificando o volume ou o canal manualmente, com uma chave de fenda por exemplo.
Vantagens do uso do TAD:
E se reunirmos todas essas vantagens veremos que elas, consequentemente, farão com que o custo do desenvolvimento diminua.
Vamos por em prática nosso conhecimento?! Tente resolver a questão abaixo.
Questão 39 do ENADE 2011
Analisando as afirmações:
I - FALSA. O TAD é descrito pela finalidade do tipo e de suas operações, e não pela forma como está implementado. Ou seja, não é necessário saber a sua representação interna.
Como a I é falsa, podemos eliminar as letras A e C.
II - VERDADEIRO. Composição e herança estão atrelados a reuso de código e o TDA proporciona isso.
Sendo a II verdadeira, eliminamos as letras C e E e também podemos concluir que a afirmação III é falsa.
III - FALSA. Sendo S subtipo de T, há operações específicas de S que não estão definidas ou não exsitem em T, portanto a corretude do programa pode sim ser alterada.
IV - VERDADEIRA. O encapsulamento de informação é uma das “consequências” do TDA.
Portanto a opção corretar é a letra D
Referências:
http://www.ic.unicamp.br/~ra069320/PED/MC102/1s2008/Apostilas/Cap09.pdf
http://www2.dc.ufscar.br/~bsi/materiais/ed/u2.html
http://pt.wikipedia.org/wiki/Tipo_de_Dado
http://www.inf.puc-rio.br/~coordicc/icc/TAD.pdf
http://wiki.icmc.usp.br/images/f/fd/AulaTAD.pdf