A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1."— Transcrição da apresentação:

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


Carregar ppt "Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1."

Apresentações semelhantes


Anúncios Google