Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula TAD
Aula TAD
Tipo de dado
Estrutura de Dados
v um conjunto de valores
o um conjunto de operaes sobre esses
valores
Ex.: tipo real
v=
o = {+, -, *, /, =, <, >, <=, >=}
Definio de TAD
Definio de TAD
Definio de TAD
Implementao de um TAD
Caractersticas de um TAD
"ocultamento de informao"
Caractersticas de um TAD
Quais as vantagens?
TADs em C: Exemplo
/* TAD: Matriz m por n */
/* Tipo Exportado */
typedef struct matriz Matriz;
/* Funes Exportadas */
*/
/* Continua... */
Arquivo matriz.h
15
TADs em C: Exemplo
/* Continuao... */
*/
*/
*/
TADs em C: Exemplo
#include <stdlib.h> /* malloc, free, exit */
#include <stdio.h> /* printf */
#include "matriz.h
struct matriz {
int lin;
int col;
float* v;
};
void libera (Matriz* mat){
free(mat->v);
free(mat);
}
Arquivo matriz.c
17
TADs em C: Exemplo
/* Continuao... */
if (mat == NULL) {
printf("Memria insuficiente!\n");
exit(1);
}
mat->lin = m;
mat->col = n;
mat->v = (float*) malloc(m*n*sizeof(float));
return mat;
}
Arquivo matriz.c
18
TADs em C: Exemplo
/* Continuao... */
return mat->v[k];
}
Arquivo matriz.c
19
TADs em C: Exemplo
/* Continuao... */
Arquivo matriz.c
20
/* Continuao... */
system("PAUSE");
return 0;
}
Ex:
{1,4} = {4, 1} ok
{1,4, 1} no ok
Se A e B so conjuntos ento A B o
conjunto de elementos que so membros de
A ou B ou ambos
Se A e B so conjuntos ento A B o
conjuntos de elementos que esto em A e B
Se A e B so conjuntos ento A B o
conjunto de elementos em A que no esto
em B.
Ex: A = {a,b,c} B = {b,d}
A B = {a,b,c,d}
A B = {b}
A B = {a,c}
Operaes usuais
Unio(A,B,C)
Interseco(A,B,C)
Diferena(A,B,C)
Membro(x,A)
Cria_Conj_Vazio(A)
Insere(x,A)
Remove(x,A)
Atribui(A,B)
Min(A)
Max(A)
Igual(A,B)
Como Implementar?
Vetor de Booleanos
Exerccios
Desenvolva: