Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Aula T10 – BCC202 Listas – Parte 2 Túlio Toffolo www. decom. ufop
Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Recursividade Função recursiva é aquela que chama a si própria.
Linguagem de Programação VI Tipos de Dados Compostos - structs
03/08/2011 Professor Leomir J. Borba- –
Listas Encadeadas CONTEÚDO (1) Motivação (2) Definição (3) Operações
Estruturas de Dados Árvores Binárias
Listas duplamente encadeadas
Programação II Estruturas de Dados
TADS – Tipos Abstratos de Dados
Listas duplamente encadeadas
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.
Árvores.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Alocação Dinâmica de Memória
LINGUAGEM C.
AULA – Linguagem C – Vetores, Ponteiros Estruturas
LPG-I: Tipos Complexos - Estruturas
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
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.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade de Brasília
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Slides Prof. Jean SIMÃO Revisão: Prof. João FABRO
Fundamentos de Programação 1
Ponteiros.
Lista Encadeada Circular Lista Duplamente Encadeada
Tratamento de Ficheiros
Escola Secundária c/ 3º CEB da Batalha
Listas Encadeadas.
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Apontadores ou Ponteiros
Vamos agora aprender a utilizar estruturas.
O Portal do Estudante de Computação
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
Prof.° Jean Daniel Henri Merlin Andreazza Estrutura de Dados
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
O Portal do Estudante de Computação
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
PROGRAMAÇÃO ESTRUTURADA II
Definição de Tipos Estruturas e Ponteiros
Estruturas de Dados com Jogos
Tipos Abstratos de Dados
Principais operações em Listas TPA Listas Simples Inserção no Final 1.void insereNofinalDaLista(Lista *l, Elemento e){ 2.Lista paux,p; 3. p.
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.
Estrutura de Dados Avançada
Seminário 1: Revisão de C
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Prof. Ricardo Santos PONTEIROS
Computação Eletrônica
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Aula 10 - Armazenamento de Dados em Registros
Vetores e Matrizes Ameliara Freire
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Campus de Caraguatatuba Aula 2: Somatório e Produtório
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
Estruturas de Dados Aula 7: Tipos Estruturados 23/04/2014.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Prof. Alessandro Gonçalves
Linguagem de Programação
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Transcrição da apresentação:

Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1

Sumário Revisão de estruturas; Lista Seqüencial; Exercício; Listas generalizadas. Prof.: Sergio Pacheco 2 2

Revisão Estrutura - struct Para armazenar grupos de dados do mesmo tipo em memória usamos o que ?; Vetor, matrizes Para armazenar grupos de dados de tipos deferentes ?; Estruturas Prof.: Sergio Pacheco 3 3

Revisão Estrutura - struct Uma estrutura é uma coleção de variáveis referenciadas por um nome, objetiva-se ter dados relacionados agrupados; As variáveis que formam a estrutura chamam-se de membros da estrutura. Prof.: Sergio Pacheco 4 4

}pessoa, cliente, chefe; Revisão Estrutura - Struct Para declarar variáveis do tipo Pessoa você tem duas opções. A primeira consiste em declarar as variáveis juntamente com a declaração da estrutura. Veja ; struct Pessoa { char *nome; int idade; }pessoa, cliente, chefe; Por que se usa ; no final Prof.: Sergio Pacheco 5 5

Revisão Estrutura - struct Como acessar os dados ? ; operador “ponto” struct func{ int rg; int cpf; }; struct func funcionario; funcionario.rg = 1111; funcionario.cpf = 1111; Prof.: Sergio Pacheco 6 6

Revisão Estrutura - struct Como acessar os dados ? ; Operador “seta” quando é ponteiro struct func{ int rg; int cpf; }; struct func *funcionario; funcionario->rg = 1111; funcionario->cpf = 1111; Prof.: Sergio Pacheco 7 7

Revisão Estrutura - struct Tamanho da estrutura em bytes: #include <stdio.h> struct func{ int rg; int cpf; char nome[10]; } main(){ struct func funcionario; printf ( "O tamanho em bytes da estrutura e == %d Bytes",sizeof(funcionario)); getchar(); Prof.: Sergio Pacheco 8 8

Revisão Estrutura - struct Como declarar um ponteiro para a mesma estrutura dentro como variável: ƒ struct Qualquer { tipo_dado_1 dado_1; ... struct Qualquer *proximo; } Prof.: Sergio Pacheco 9 9

Exercícios - Estrutura Criar um estrutura que possua 2 variáveis uma para hora e outra para minutos, ambas do tipo inteiro. Depois criar duas funções que receba os minutos digitados pelo usuário e devolva em horas para uma variável hora dentro da estrutura e a outra função para a variável minutos e imprima na tela. Prof.: Sergio Pacheco 10 10

Exercícios - Estrutura Prof.: Sergio Pacheco 11 11

Recursividade Quando a função chama ela mesmo. Em c muitas vezes pode ser chamado de definição circular. Uma função poderá também ser considerada recursiva se chamar outras funções que, em algum momento, chamem a primeira função, tornando esse conjunto de funções um processo recursivo. O que é importantíssimo em uma recursividade que não se pode esquecer ? Contar dinheiro saco Prof.: Sergio Pacheco 12 12

Recursividade duas Partes Principais Condição de parada : ponto que vai definir a parada da função; Regra Geral : é o método que reduz a resolução do problema através da invocação recursiva de casos menores, que por sua vez são resolvidos pela resolução de casos ainda menores pela própria função, assim sucessivamente até atingir o “ponto de parada” que finaliza o método. Prof.: Sergio Pacheco 13 13

Exercícios - Recursividade Determine o que a seguinte função em C calcula, depois disso, construa uma função iterativa para atingir o mesmo objetivo. Func (n){ Int n; if (n ==0){ return(0); } return(n+func(n-1)); Prof.: Sergio Pacheco 14 14

Listas Generalizadas - Definições São estruturas muitos flexíveis, do tipo recursiva, que garantem a construção de estruturas simples as mais complexas. Uma lista generalizada L [e1,e2,e3...,en],n>0; Cada elemento pode ser um átomo ou então uma sublista caracterizando uma outra lista generalizada. O tamanho da lista é definida pelo valor de n. Se n = 0 é dita lista vazia; A lista é definida pela cabeção e1(head) e o resto outros elementos (tail). Prof.: Sergio Pacheco 15 15

Listas Generalizadas - Definições b c e f Representação Lista L= [a, [b,c],d,[e, [ ],f ] ]; Prof.: Sergio Pacheco 16 16

Listas Generalizadas - Exercícios Desenhe a lista generalizada correspondente : L1 = [[[1], 2], [3, [4, 5]]]; L2 = [[1, [2, 3]], [[4]], 5]; L3 = [[[1, 2], 3], [4, [5]]]; Prof.: Sergio Pacheco 17 17

Listas Generalizadas - Gabaritos Desenhe a lista generalizada correspondente : L1 = [[[1], 2], [3, [4, 5]]]; Prof.: Sergio Pacheco 18 18

Listas Generalizadas - Gabaritos Desenhe a lista generalizada correspondente : L2 = [[1, [2, 3]], [[4]], 5]; Prof.: Sergio Pacheco 19 19

Listas Generalizadas - Gabaritos Desenhe a lista generalizada correspondente : L3 = [[[1], 2], 3], [4, [5]]]; Prof.: Sergio Pacheco 20 20

Listas Generalizadas - Operações Prof.: Sergio Pacheco 21 21

Listas Generalizadas – Exemplo Oper. Lista L1 = [3, [7, 14, [13, 26, 39], 21], 30, [4, 40, 400]]; head(L1) = 3; tail (L1) = [7, 14, [13, 26, 39], 21], 30, [4, 40, 400]]; head(Tail (L1)) = [7, 14, [13, 26, 39], 21]; Para recuperar o elemento de número 13, usando os comando acima? Resp: head (tail (tail (tail (head(L1))))) = 13; Prof.: Sergio Pacheco 22 22

Listas Generalizadas – union Utiliza a mesma posição de memória para tipos diferentes, pode-se utilizar um ou outro de acordo com a necessidade. Exemplo abaixo: union info_lista { int i; char c; struct No* sublista; }; Prof.: Sergio Pacheco 23 23

Listas Generalizadas – union Prof.: Sergio Pacheco 24 24

Trabalho para o lar – vale (0,5) Pontos Implementar um lista generalizada utilizando linguagem c. Trazer em anexo a documentação pertinente, que deve conter uma explicação de como o programa funciona e suas funções. Exemplo “essa função cria uma sublista alocando memória através da função malloc quando se fizer necessário” . Colocar bibliografia, fonte de pesquisa. Usar o comando union para criar um subEstrutura... Prof.: Sergio Pacheco 25 25

Bom final de semana e até semana que vem !!! ( Prof.: Sergio Pacheco 26 26