Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS

Slides:



Advertisements
Apresentações semelhantes
Estruturas de Dados Listas Prof. Rodrigo Rocha
Advertisements

Estruturas de Dados FILA Prof. Rodrigo Rocha
Estruturas de Dados Pilha Prof. Rodrigo Rocha
TIPOS ABSTRATOS DE DADOS
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Denise Guliato Faculdade de Computação – UFU
Linguagem de Programação VI Tipos de Dados Compostos - structs
03/08/2011 Professor Leomir J. Borba- –
Sílabo: Introdução à Ciência da Computação (SCC0121)
Prof. Thiago Pereira Rique
Programação II Estruturas de Dados
Programação para Engenharia I
TADS – Tipos Abstratos de Dados
TADS – Tipos Abstratos de Dados
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
Algoritmos e Estrutura de Dados I
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária
Alocação Dinâmica de Memória
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
Introdução Linguagem C
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Introdução à Programação
Noções de Estrutura de Dados Logica de Programação
Linguagem C Strings.
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
Universidade do Vale do Rio dos Sinos - São Leopoldo -
JAVA: Conceitos Iniciais
Introdução a Computação e Cálculo Numérico
PROGRAMAÇÃO I UNIDADE 1.
Aula 01 BCC202 - Estrutura de Dados I Túlio Toffolo
INTELIGÊNCIA ARTIFICIAL
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Aula 02 – BCC202 Tipo Abstrato de Dados Túlio Toffolo www. decom. ufop
Seminário 1: Revisão de C
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Fábio de Oliveira Borges
Tipos Abstratos de Dados
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Estruturas de Dados Aula 1: Introdução e conceitos básicos
Introdução à Programação Orientada a Objetos com Java Paulo Borba Centro de Informática Universidade Federal de Pernambuco Programação Imperativa (e Ponteiros.
Prof. Mateus Raeder Professor.unisinos.br/mraeder
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Estruturas de Dados Aula 11: TAD Pilha
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Aula P.02 – BCC202 Revisão sobre Ponteiros Túlio Toffolo
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
INE5408 Estruturas de Dados Apresentação e Programa da Disciplina.
Profa. Maria Augusta Constante Puget
Linguagem de Programação II
Profa. Juliana Mafra ESTRUTURA DE DADOS 30 de Setembro de 2009 Faculdade de Informática e Tecnologia de Pernambuco.
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Linguagem de Programação
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Tipo Abstrato de Dados (TAD) Estrutura de Dados Professor: Rodrigo Alves Sarmento Professor: André Cypriano.
Estrutura de Dados Prof. André Cypriano M. Costa
Estrutura de Dados Prof. André Cypriano M. Costa
Alocação Dinâmica de Memória e Tipo Abstrato de Dados Cristiano Arbex Valle Vinicius Fernandes dos Santos
Prof. Tertuliano Operadores Variáveis em C++.
Disciplina: Estrutura de dados e Algoritmos Docentes: MSc. Manuel Zunguze.
Transcrição da apresentação:

Profa. Juliana Mafra (jmafra.pe@gmail.com) Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS Profa. Juliana Mafra (jmafra.pe@gmail.com) 21 de Setembro de 2009

Ementa Introdução às Estruturas de Dados Estruturas Elementares Algoritmos de Ordenação e Recursão Árvores e Grafos Algoritmos para Estruturas Complexas ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Objetivo Geral Possibilitar aos alunos a utilização otimizada das diversas estruturas de dados apresentadas, levando em consideração o problema a ser resolvido ou otimizado, e também o contexto no qual ocorre esse problema. ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Objetivos Específicos Fornecer domínio da alocação dinâmica de memória; Apresentar as principais estruturas de dados e suas implementações, em termos de representação física e algoritmos de manipulação, guiando-se pelo conceito de tipos abstratos de dados; Apresentar os principais processos de pesquisa e classificação de dados; Introduzir aspectos básicos da complexidade de algoritmos; Consolidar os conhecimentos sobre programação previamente adquiridos, utilizando estruturas de dados em aplicações particulares. ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Metodologia A disciplina será trabalhada com aulas expositivo-dialogadas, onde serão fornecidos os componentes teóricos e será feita a prática de exercícios. ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Bibliografia Livro Texto: Livros de Referência: Veloso, P.A . da S. – Estrutura de Dados –Editora Campus, 1983. Livros de Referência: Horowitz, E e Shani, S. - Fundamentos de Estruturas de Dados - Editora Campus, Rio de Janeiro, 1983. Referências Complementares: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein - Algoritmos: Teoria e Prática, Editora Campus, Rio de Janeiro, 2002. ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Introdução às Estruturas de Dados Tipo Abstrato de Dados (TDA) ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Tipos de Dados Define a forma como um dado deve ser armazenado ou recuperado, bem como os possíveis valores que ele pode assumir e as operações que podem ser efetuadas sobre os mesmos. Exemplo em Pascal: integer - permite valores inteiros e operações de adição, multiplicação, subtração e divisão; string - permite valores literais e operações de concatenação; Obs. Esses tipos estão intrinsecamente relacionados com o hardware. Tipo de dados - método de interpretação do conteúdo da memória de um computador. int a, b - a e b são números inteiros, com sinal, no intervalo [-32768, 32767]. Cada número do tipo inteiro ocupa 2 bytes. ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Tipo Abstrato de Dados (TAD) Um tipo abstrato de dados (TAD) é a especificação matemática de um conjunto de dados e das operações que podem ser executadas sobre esses dados. O conceito de tipo de dado abstrato é dissociado do hardware. TAD define o que cada operação faz, mas não como faz. Assim, um mesmo tipo abstrato de dados pode ser concretizado (ou implementado) de diversas formas. Definição do conjunto de valores possíveis e das operações que serão executadas sobre esses valores: (V, Op) TDA - entidade matemática munida de certas operações - O conceito enfatiza as propriedades lógicas do tipo que está sendo criado -Não há preocupação com a eficiência de tempo e espaço, essas são preocupações relacionadas com a implementação ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Tipo Abstrato de Dados (TAD) TADs são materializados pelas estruturas de dados. – Lista Encadeada (implementação com referências) – Lista com alocação estática (implementação usando array) Estruturas de dados são formas genéricas de se estruturar informação de modo a serem registradas e processadas pelo computador. Contudo, estas só adquirem significado quando associadas a um conjunto de operações, que visam, de um modo geral, manipulá-las (algoritmos). Estrutura de dados é uma forma concreta de se implementar um TAD, ou seja, uma representação computacional do modelo matemático em questão. Conjunto de informação agrupadas de uma forma coerente (Por exemplo, segundo alguma relação existente entre elas). Ex.: a lista de chamada de uma turma. ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

TAD em C Uma boa técnica de programação é implementar os TADs em arquivos separados do programa principal. Para isso, geralmente separa-se a declaração e a implementação do TAD em dois arquivos: NomeDoTAD.h: com a declaração NomeDoTAD.c: com a implementação O programa ou outros TADs que utilizam o seu TAD devem dar um #include no arquivo.h ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

TAD:Exemplo Implemente um TAD ContaBancaria, com os campos número e saldo onde os clientes podem fazer as seguintes operações: Iniciar uma conta com um número e saldo inicial Depositar um valor Sacar um valor Imprimir o saldo Faça um pequeno programa para testar o seu TAD. ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

ContaBancaria.h // definição do tipo typedef struct{ int numero; double saldo; }ContaBancaria; // cabeçalho das funções void Inicializa(ContaBancaria* conta, int numero, double saldo); void Deposito(ContaBancaria* conta, double valor); void Saque(ContaBancaria* conta, double valor); void Imprime(ContaBancaria conta); ESTRUTURA DE DADOS Profa. Juliana Mafra 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){ printf(" Numero: %d \n", conta. numero); printf(" Saldo: %f \n", conta.saldo); ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Main.c #include <stdio.h> #include <stdlib.h> #include "ContaBancaria.h“ int main(int argc, char *argv[]) { ContaBancaria conta1; Inicializa(&conta1,918556,300.00); printf("\n Antes da movimentacao: \n"); Imprime(conta1); Deposito(&conta1, 50.00); Saque(&conta1, 70.00); printf("\n Depois da movimentacao: \n"); } ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados