ESTRUTURA DE DADOS
21 de Setembro de 2009
Ementa
Introduo s Estruturas de Dados
Estruturas Elementares
Algoritmos de Ordenao e Recurso rvores e Grafos Algoritmos para Estruturas Complexas
ESTRUTURA DE DADOS
Objetivo Geral
Possibilitar aos alunos a utilizao otimizada das
diversas estruturas de dados apresentadas, levando em considerao o problema a ser resolvido ou otimizado, e tambm o contexto no qual ocorre esse problema.
ESTRUTURA DE DADOS
Objetivos Especficos
Fornecer domnio da alocao dinmica de memria;
Apresentar
as principais estruturas de dados e suas implementaes, em termos de representao fsica e algoritmos de manipulao, guiando-se pelo conceito de tipos abstratos de dados;
dados;
Introduzir aspectos bsicos da complexidade de algoritmos;
Metodologia
A
disciplina ser trabalhada com aulas expositivo-dialogadas, onde sero fornecidos os componentes tericos e ser feita a prtica de exerccios.
ESTRUTURA DE DADOS
Bibliografia
Livro Texto:
Veloso, P.A . da S. Estrutura de Dados Editora Campus,
1983.
Livros de Referncia:
Horowitz, E e Shani, S. - Fundamentos de Estruturas de
Clifford Stein - Algoritmos: Teoria e Prtica, Editora Campus, Rio de Janeiro, 2002.
ESTRUTURA DE DADOS
Tipos de Dados
Define a forma como um dado deve ser armazenado ou
recuperado, bem como os possveis valores que ele pode assumir e as operaes que podem ser efetuadas sobre os mesmos.
Exemplo em Pascal:
integer - permite valores inteiros e operaes de adio, multiplicao,
com o hardware.
8 ESTRUTURA DE DADOS Profa. Juliana Mafra
abstrato de dados (TAD) a especificao matemtica de um conjunto de dados e das operaes que podem ser executadas sobre esses dados.
O conceito de tipo de dado abstrato dissociado do hardware. TAD define o que cada operao faz, mas no como faz.
Assim,
um mesmo tipo abstrato de dados pode ser concretizado (ou implementado) de diversas formas.
Profa. Juliana Mafra
ESTRUTURA DE DADOS
adquirem significado quando associadas a um conjunto de operaes, que visam, de um modo geral, manipul-las (algoritmos).
10
ESTRUTURA DE DADOS
TAD em C
Uma boa tcnica de programao implementar os TADs em
um #include no arquivo.h
11
ESTRUTURA DE DADOS
TAD:Exemplo
Implemente um TAD ContaBancaria, com os campos nmero e
Imprimir o saldo
12
ESTRUTURA DE DADOS
ContaBancaria.h
// definio do tipo typedef struct{
int numero;
double saldo; }ContaBancaria;
13
ESTRUTURA DE DADOS
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){
Main.c
#include <stdio.h> #include <stdlib.h> #include "ContaBancaria.h int main(int argc, char *argv[]) { ContaBancaria conta1; Inicializa(&conta1,918556,300.00);
15
ESTRUTURA DE DADOS