Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouThomas Natal Alterado mais de 10 anos atrás
1
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1
2
Sumário Revisão de estruturas; Lista Seqüencial; Exercício;
Listas generalizadas. Prof.: Sergio Pacheco 2 2
3
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
4
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
5
}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
6
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
7
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
8
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
9
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
10
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
11
Exercícios - Estrutura
Prof.: Sergio Pacheco 11 11
12
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
13
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
14
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
15
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
16
Listas Generalizadas - Definições
b c e f Representação Lista L= [a, [b,c],d,[e, [ ],f ] ]; Prof.: Sergio Pacheco 16 16
17
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
18
Listas Generalizadas - Gabaritos
Desenhe a lista generalizada correspondente : L1 = [[[1], 2], [3, [4, 5]]]; Prof.: Sergio Pacheco 18 18
19
Listas Generalizadas - Gabaritos
Desenhe a lista generalizada correspondente : L2 = [[1, [2, 3]], [[4]], 5]; Prof.: Sergio Pacheco 19 19
20
Listas Generalizadas - Gabaritos
Desenhe a lista generalizada correspondente : L3 = [[[1], 2], 3], [4, [5]]]; Prof.: Sergio Pacheco 20 20
21
Listas Generalizadas - Operações
Prof.: Sergio Pacheco 21 21
22
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
23
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
24
Listas Generalizadas – union
Prof.: Sergio Pacheco 24 24
25
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
26
Bom final de semana e até semana que vem !!!
( Prof.: Sergio Pacheco 26 26
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.