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

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

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

Apresentações semelhantes


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

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

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

3 Prof.: Sergio Pacheco Revisão Estrutura - struct 3 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

4 Prof.: Sergio Pacheco Revisão Estrutura - struct 4 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.

5 Prof.: Sergio Pacheco Revisão Estrutura - Struct 5 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

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

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

8 Prof.: Sergio Pacheco Revisão Estrutura - struct 8 Tamanho da estrutura em bytes: #include 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(); }

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

10 Prof.: Sergio Pacheco Exercícios - Estrutura 10 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.

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

12 Prof.: Sergio Pacheco Recursividade 12 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

13 Prof.: Sergio Pacheco Recursividade duas Partes Principais 13 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.

14 Prof.: Sergio Pacheco Exercícios - Recursividade 14 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)); }

15 Prof.: Sergio Pacheco Listas Generalizadas - Definições 15 São estruturas muitos flexíveis, do tipo recursiva, que garantem a construção de estruturas simples as mais complexas. Uma lista generalizada L [e 1,e 2,e 3...,e n ],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 e 1 (head) e o resto outros elementos (tail).

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

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

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

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

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

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

22 Prof.: Sergio Pacheco Listas Generalizadas – Exemplo Oper. 22 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 ;

23 Prof.: Sergio Pacheco Listas Generalizadas – union 23 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; };

24 Prof.: Sergio Pacheco Listas Generalizadas – union 24

25 Prof.: Sergio Pacheco Trabalho para o lar – vale (0,5) Pontos 25 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...

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


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

Apresentações semelhantes


Anúncios Google