Algoritmos e Estruturas de Dados I

Tamanho: px
Começar a partir da página:

Download "Algoritmos e Estruturas de Dados I"

Transcrição

1 Algoritmos e Estruturas de Dados I Aula 09 Revisão + Simulado Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q

2 Vetores 2

3 Vetores 3

4 Vetores vetor 4

5 Vetores... vetor... 5

6 Ponteiros 6

7 Processo na memória INSTRUÇÕES PILHA (STACK) Armazena o código compilado (na linguagem máquina) Armazena as variáveis ao longo da execução do programa. Espaço de memória principal gerenciado pelo SO. [~bytes] [~Mbytes] [~Toda a memória RAM] Alocação estática int x; double M[10][20]; char *c; HEAP Alocação dinâmica double M = malloc(...); 7

8 Ponteiros? Processo na memória INSTRUÇÕES PILHA (STACK) HEAP Em Java e Python o uso é transparente. Não precisa se preocupar de alocar e liberar memória 8

9 Fenômeno: Stack Overflow Processo na memória INSTRUÇÕES PILHA (STACK) HEAP 9

10 Endereços A memória de qualquer computador (arquitetura de Von Neumann) é uma sequência de bytes. Cada byte armazena um de 256 possíveis valores. Os bytes são numerados sequencialmente e o número de um byte é o seu endereço (*) Fonte: 10

11 Endereços Em c o endereço de um objeto é dado pelo operador & Se x é uma variável, então &x é o seu endereço int s = -999 int* p = &s p s 0x x x89422 p = 0x89422 &p = 0x60001 *p = p aponta para a s p é o endereço de s p aponta a s *p é o mesmo que escrever s 11

12 Structs 12

13 Linguagem C: Tipos de dados Tipos de dados primários. Tipos de dados derivados. Tipos definidos pelo usuário. (*) Fonte: 13

14 Por que precisamos saber de structs? Em determinadas aplicações é necessário associar diferentes dados a um objeto. Objeto: Ponto em 3D x y z Ponto 1 Ponto 2 Ponto 3 Ponto 4 Ponto

15 Por que precisamos saber de structs? Podemos usar 3 vetores para armazenar as posições de cada ponto no espaço 3D Vx Vy Vz void plot3d(double Vx[], double Vy[], double Vz[]) {... } 15

16 Por que precisamos saber de structs? Podemos usar 7 vetores para armazenar as posições de cada ponto no espaço 3D e a sua cor RGB Vx Vy Vz Vr Vg Vb Va void plot3d(double Vx[], double Vy[], double Vz[], ) {... } 16

17 Por que precisamos saber de structs? Por que não simplificar? Vx Vy void plot3d(struct Ponto3D V[], int n) {... } Vz Vr Vg Vb Va As structs fornecem uma forma simples para programar 17

18 Estruturas Uma estrutura para armazenar um ponto 3D Uma estrutura para armazenar um ponto 3D e sua cor (RGBA) 18

19 Maior segmento de reta 2D Crie um programa, na linguagem C, em que dada uma sequência de n pares de números reais, apresente o comprimento do maior segmento de reta. Deve ser obrigatoriamente utilizada a estrutura: struct Ponto2D { double x; double y; }; Exemplo de entrada: Saída: 5.66 Apresente apenas os 2 primeiros digitos após o ponto decimal Obs.: Não use colchetes. Use apenas ponteiros. 19

20 Exemplo de segmentos de reta Maior segmento 20

21 Maior segmento de reta 2D pow(2,2) sqrt(2) 21

22 Maior segmento de reta 2D 22

23 Área do Menor Triângulo Crie um programa, na linguagem C, em que dada uma sequência de n (n>=3) pares de números reais, apresente a área do menor triângulo composto por 3 pontos. Deve ser obrigatoriamente utilizada a estrutura: struct Ponto2D { double x; double y; }; Exemplo de entrada: Saída: Apresente apenas os 2 primeiros digitos após o ponto decimal Obs.: Não use colchetes. Use apenas ponteiros. 23

24 Exemplo de triângulos para 4 pontos 24

25 Área de um triângulo 25

26 Área do Menor triângulo 26

27 Área do Menor triângulo 27

28 Listas 28

29 Definição Suporemos que os objetos armazenados nos nós são do tipo int. A estrutura de nós pode ser definida como:

30 Imprimir uma lista (rec) 30

31 Busca por um elemento p r Busca (dado um elemento) x x O(n) Se o elemento não existir, na lista, a função devolve NULL. 31

32 Outros tipos de listas encadeadas: Lista circular p A última célula aponta para a primeira

33 Outros tipos de listas encadeadas: Lista duplamente encadeada q p NULL 75 NULL Cada célula contém o endereço da célula anterior e o da seguinte 33

34 4) Eliminar elemento em uma posição Dado um ponteiro para o primeiro nó de uma lista ligada, e um número inteiro p. Elimine da lista o nó que está na posição p da lista. A função deve devolver um ponteiro ao primeiro elemento da lista. Assuma que a posição p sempre será uma posição válida. Uma posição igual a 0 indica o início da lista. Uma posição igual a 1 indica o nó seguinte ao início da lista e assim por diante. O ponteiro dado pode ser nulo, o que significa que a lista inicial está vazia. Obs.: Deve implementar apenas a função eliminarelementoemumaposicao Entrada Saída Descrição Na lista ligada de 5 nós, composta pelos elementos: Deve ser eliminado o elemento da posição 2. Resultando a lista:

35 4) Eliminar elemento em uma posição 35

36 5) Inverter uma lista ligada Dado um ponteiro para o primeiro nó de uma lista ligada, crie uma função que permita inverter a ordem na lista. Isto é, as ligações devem ser invertidas. O último elemento da lista deve apontar a NULL. A função deve devolver um ponteiro ao primeiro elemento da lista. O ponteiro dado pode ser nulo, o que significa que a lista inicial está vazia. Obs.: Deve implementar apenas a função inverterlistaligada Entrada Saída Descrição A lista ligada de 5 elementos, composta por: NULL Deve ser transformada na lista: NULL 36

37 5) Inverter uma lista ligada 37

38 6) Comparar duas listas ligadas Dados dois ponteiros para os primeiros nós de duas listas ligadas, crie uma função que permita comparar os dados nos nós das listas para verificar se eles são iguais. As listas são iguais apenas se tiverem o mesmo número de nós e os nós correspondentes tiverem os mesmos dados. O ponteiro dado pode ser nulo, o que significa que a lista está vazia. Obs.: Deve implementar apenas a função compararlistasligadas Entrada Saída Descrição Dadas as duas listas: Lista 1: NULL Lista 2: 11 NULL A resposta deve ser 0 dado que são listas diferentes. Dadas as duas listas: Lista 1: NULL Lista 2: NULL A resposta deve ser 1 dado que são listas iguais. 38

39 6) Comparar duas listas ligadas 39

40 7) Valor em uma determinada posição Dado um ponteiro para o primeiro nó de uma lista ligada e um inteiro que representa uma posição p, crie uma função que permita obter o valor do nó dada na posição p, contando de trás para frente. Assuma que a posição p sempre será uma posição válida. Uma posição igual a 0 indica o último elemento da lista. Uma posição igual a 1 indica o penúltimo e assim por diante. O ponteiro dado pode ser nulo, o que significa que a lista está vazia. Obs.: Deve implementar apenas a função valoremposicao Entrada Saída Descrição Na lista ligada de 5 elementos, composta por: NULL O elemento na posição 1 (de trás para frente) é 44 40

41 7) Valor em uma determinada posição 41

42 8) Eliminar elementos duplicados Dado um ponteiro para o primeiro nó de uma lista ligada com elementos organizados na ordem crescente. Crie uma função que permita eliminar o mínimo dos nós para que a lista não contenha nenhum valor repetido. A função deve devolver um ponteiro ao primeiro elemento da lista. O ponteiro dado pode ser nulo, o que significa que a lista está vazia. Obs.: Deve implementar apenas a função eliminarelementosduplicados Entrada Saída Descrição A lista ligada de 7 elementos, composta por: NULL Deve ser transformada na lista: NULL 42

43 8) Eliminar elementos duplicados 43

44 9) Intercalar duas listas ligadas Dados dois ponteiros para os primeiros nós de duas listas ligadas, crie uma função que permita intercalar os dados nos nós das listas de tal forma a criar uma (nova) terceira lista ligada mas organizada na forma crescente. Os dados em ambas as listas iniciais estão organizados na sua forma crescente. O ponteiro dado pode ser nulo, o que significa que a lista está vazia. Obs.: Deve implementar apenas a função intercalarlistasligadas Entrada Saída Descrição Dadas as duas listas: Lista 1: NULL Lista 2: NULL Dadas as duas listas: Lista 1: 99 NULL Lista 2: 99 NULL O resultado de intercalar as duas listas deve ser: NULL O resultado de intercalar as duas listas deve ser: NULL 44

45 9) Intercalar duas listas ligadas 45

46 10) Segundo menor elemento Dado um ponteiro para o primeiro nó de uma lista ligada. Crie uma função que permita devolver o valor do segundo menor elemento presente na lista ligada. Considere que a lista inicial sempre terá no mínimo 2 elementos. Obs.: Deve implementar apenas a função segundomenorelemento Entrada Saída Descrição A lista ligada de 5 elementos, composta por: NULL Tem como segundo menor valor: 33 A lista ligada de 3 elementos, composta por: NULL Tem como segundo menor valor: 44 46

47 10) Segundo menor elemento 47

48 Resumo Listas Listas com com arranjos arranjos ---- Listas Simples Simples para para usar usar Alocação Alocação em em bloco bloco contínuo contínuo Acesso Acesso aa um um item item em em tempo tempo constante constante -- Requer Requer saber saber aa quantidade quantidade de de itens itens previamente previamente (para (para alocação) alocação) -- Inserção/Remoção Inserção/Remoção requer requer deslocamentos deslocamentos -- Expansão Expansão custosa custosa (realocar (realocar ee copiar) copiar) Listas Listas ligadas/encadeadas/enlaçadas ligadas/encadeadas/enlaçadas -- Não Não requer requer conhecer conhecer aa quantidade quantidade de de itens itens previamente previamente -- Inserção Inserção ee remoção remoção não não requer requer deslocamentos deslocamentos -- Acesso Acesso aa uma uma posição posição necessita necessita percorrer percorrer aa lista lista -- Memória Memória extra extra para para os os ponteiros ponteiros

49 listas e árvores 49

50 Vetor (array): Elementos contiguos na memória. Todos do mesmo tipo de dado Listas ligadas: Elementos não necessariamente contiguos na memória. Podem ter atributos diferentes. Árvores: Elementos não necessariamente contiguos na memória. Podem ter atributos diferentes. 50

51 Structs Para uma lista ligada: Para uma lista duplamente ligada e também para uma árvore em que cada nó tenha no máximo 2 ligações: 51

52 Varredura Como seria a varredura e-r-d? 52

53 Varredura Na figura abaixo, os nós estão numeradas na ordem da varredura e-r-d

54 Custos de algoritmos 54

55 O número de comparações, no algoritmos, depende dos inteiros registrados no vetor. No melhor caso: o elemento está na primeira posição No pior caso: o elemento está na última posição ou não está no vetor. No caso médio? 55

56 Busca de um elemento Seja f uma função de complexidade tal que f(n) é o número de elementos consultados. Melhor caso: Quando o elemento procurado é o primeiro consultado Pior caso: Quando o elemento procurado é o último consultado ou Não está presente no vetor Caso médio: 56

57 (*) Fonte: 57

58 58

59 Simulado 59

60 Q1 (a) Devolve a diferença entre o maior e o menor valor presente no vetor V. (b) Para qualquer caso o número de comparações é proporcional a 2n. 60

61 Q2 61

62 Q3 62

63 Q4 63

MCTA001 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros e estruturas

MCTA001 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros e estruturas MCTA001 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros e estruturas Prof. Jesús P. Mena-Chalco 1Q-2019 1 Mapa de memória de um processo 2 Alocação de memória: estática VS Dinâmica Na execução, um

Leia mais

MCTA028 Programação Estruturada Aula 07: - Mapa de memória de um processo - Ponteiros (parte 1)

MCTA028 Programação Estruturada Aula 07: - Mapa de memória de um processo - Ponteiros (parte 1) MCTA028 Programação Estruturada Aula 07: - Mapa de memória de um processo - Ponteiros (parte 1) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-2017 1 Mapa de memória de um processo 2 Alocação de

Leia mais

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-2017 1 Sobre funções ( uma ideia ) 2 Qual função é mais eficiente? 3 1995 2015 4 Qual

Leia mais

- Mapa de memória de um processo - Ponteiros

- Mapa de memória de um processo - Ponteiros 1 MCTA028 Programação Estruturada - Mapa de memória de um processo - Ponteiros Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-2018 2 Alocação de

Leia mais

Aula 07: - Mapa de memória de um processo - Ponteiros (parte 1)

Aula 07: - Mapa de memória de um processo - Ponteiros (parte 1) MCTA028 Programação Estruturada Aula 07: - Mapa de memória de um processo - Ponteiros (parte 1) Prof. João Henrique Kleinschmidt Material elaborado pelo prof. Jesús P. Mena-Chalco 3Q-20108 Mapa de memória

Leia mais

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) Prof. João Henrique Kleinschmidt Material elaborado pelo prof. Jesús P. Mena-Chalco 3Q-2018 Sobre funções ( uma ideia ) Qual função é mais

Leia mais

Aula 13: Listas encadeadas (estruturas lineares)

Aula 13: Listas encadeadas (estruturas lineares) Algoritmos e Estruturas de Dados I Aula 13: Listas encadeadas (estruturas lineares) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2017 1 Estruturas (alguns autores usam o termo registro) 2 Linguagem

Leia mais

Aula 07: Algoritmos de busca e Listas encadeadas

Aula 07: Algoritmos de busca e Listas encadeadas BC1424 Algoritmos e Estruturas de Dados I Aula 07: Algoritmos de busca e Listas encadeadas Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2016 1 Busca de um elemento 2 Exemplo: Busca de um elemento

Leia mais

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta Algoritmos e Estruturas de Dados Prof. Marcelo Zorzan Profa. Melissa Zanatta Assuntos da Aula Alocação de Memória Alocação estática de memória Alocação dinâmica de memória Malloc, Calloc, Free, Realloc

Leia mais

Lista Encadeada (Linked List)

Lista Encadeada (Linked List) Lista Encadeada (Linked List) As listas ou listas encadeadas são a estrutura de dados mais simples concebível excetuando-se naturalmente os arrays. Listas encadeadas nada mais são que uma seqüência de

Leia mais

Estruturas de Dados I

Estruturas de Dados I Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2075 Aula 6: Listas Encadeadas e Alocação Dinâmica Listas Encadeadas e Alocação Dinâmica Alocação Seqüencial versus

Leia mais

Algoritmos e Estruturas de dados

Algoritmos e Estruturas de dados Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores

Leia mais

Algoritmos e Estruturas de Dados II IEC013

Algoritmos e Estruturas de Dados II IEC013 Algoritmos e Estruturas de Dados II IEC013 Revisão: Listas Encadeadas Prof. César Melo Todos os créditos reservados ao professor Leandro Galvão Listas Encadeadas Listas encadeadas ou listas ligadas representam

Leia mais

ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS

ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender a organização dos dados na memória Compreender o que são ponteiros Capacitar para implementar programas com

Leia mais

Estrutura de Dados. Aula 07 Alocação Dinâmica

Estrutura de Dados. Aula 07 Alocação Dinâmica Estrutura de Dados Aula 07 Alocação Dinâmica 2 ALOCAÇÃO DINÂMICA Existem três modos de reservar espaço de memória para o armazenamento de informações: 1ª - através do uso de variáveis globais (e estáticas).

Leia mais

Professora Jeane Melo

Professora Jeane Melo Professora Jeane Melo Roteiro Lista Encadeada Alocação: Estática x Dinâmica O que são Ponteiros? Ponteiros Variáveis que Armazenam Endereços de Memória Mas, toda variável não é armazenada na memória? Ponteiros

Leia mais

Ponteiros. Baseado nos slides do Prof. Mauro.

Ponteiros. Baseado nos slides do Prof. Mauro. Baseado nos slides do Prof. Mauro. A memória do computador é uma sequência de bytes, na qual endereçamos cada um sequencialmente. Como vimos, uma variável é uma região da memória que reservamos para armazenar

Leia mais

PRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: 22/09/2010

PRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: 22/09/2010 UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA Bacharelado em Ciência da Computação e Engenharia da Computação INF 01203 Estruturas de Dados Profa. Renata Galante (galante@inf.ufrgs.br

Leia mais

Programação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória

Programação Estruturada Prof. Rodrigo Hausen  Organização e Gerenciamento de Memória Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Organização e Gerenciamento de Memória 1 AULA PASSADA - vetores ou arrays Declaração de um vetor (array) em C: tipo nome[tamanho];

Leia mais

Estruturas de Dados Estruturas de Dados Fundamentais

Estruturas de Dados Estruturas de Dados Fundamentais Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando

Leia mais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 4: Listas Estáticas e Dinâmicas Listas Estáticas: com Vetores Dinâmicas: Listas Ligadas (com ponteiros) Variáveis e Métodos de Controle:

Leia mais

LINGUAGEM C: ALOCAÇÃO DINÂMICA

LINGUAGEM C: ALOCAÇÃO DINÂMICA LINGUAGEM C: ALOCAÇÃO DINÂMICA Prof. André Backes DEFINIÇÃO Sempre que escrevemos um programa, é preciso reservar espaço para as informações que serão processadas. Para isso utilizamos as variáveis Uma

Leia mais

ALOCAÇÃO DINÂMICA DE MEMÓRIA

ALOCAÇÃO DINÂMICA DE MEMÓRIA INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador

Leia mais

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122

Princípios de Desenvolvimento de Algoritmos MAC122 Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Alocação Dinâmica de Memória Motivação: Nossos programas pré-fixavam o número de variáveis a serem utilizadas. No caso

Leia mais

Aula 02: Custos de um algoritmo e funções de complexidade

Aula 02: Custos de um algoritmo e funções de complexidade MCTA028 Programação Estruturada Aula 02: Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-20106 1 Linguagem C: Tipos de dados 2 Linguagem C: Tipos

Leia mais

Modulo 12: alocação dinâmica de memória

Modulo 12: alocação dinâmica de memória PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 12: alocação dinâmica de memória Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro porque e como utilizar a alocação dinâmica funções: malloc (

Leia mais

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto Programação I Ponteiros e alocação dinâmica de memória Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Ponteiros O ponteiro é um tipo de dado como int, char ou float; Variáveis

Leia mais

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz MAC122 rincípios de Desenvolvimento de Algoritmos Lista de exercícios 01 rof.: aulo Miranda Instituto de Matemática e Estatística (IME) Universidade de São aulo (US) Alocação Dinâmica & Matrizes Questão

Leia mais

Lista de Exercícios sobre Listas Implementadas por Encadeamento

Lista de Exercícios sobre Listas Implementadas por Encadeamento Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um

Leia mais

Alocação dinâmica de Memória

Alocação dinâmica de Memória Alocação dinâmica de Memória Vetores e Arrays A variável vetor é uma variável que armazena outras variáveis, no caso tem que ser do mesmo tipo. Exemplo Criar um cont Declarar um vet com o tamanho Laço

Leia mais

Ponteiros e Alocação Dinâmica. Prof. Péricles Miranda

Ponteiros e Alocação Dinâmica. Prof. Péricles Miranda Ponteiros e Alocação Dinâmica Prof. Péricles Miranda pbcm@cin.ufpe.br Memória A memória é formada por várias células. Cada célula contém um endereço e um valor. Memória Endereço Ao declararmos uma variável

Leia mais

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória Alocação Dinâmica de Memória Elerson R. S. Santos elerson@dcc.ufmg.br Algoritmos e Estruturas de DCC UFMG Variáveis Uma variável representa um nome simbólico para uma posição de memória. Cada posição de

Leia mais

Lista de Exercícios 04

Lista de Exercícios 04 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professor: Túlio Toffolo (www.decom.ufop.br/toffolo)

Leia mais

(a) Indique, em português, o que realiza a seguinte função. [4 pontos]

(a) Indique, em português, o que realiza a seguinte função. [4 pontos] Universidade Federal do ABC Avaliação: Prova 02 Disciplina: MCTA028 - Programação Estruturada Turma: Noturno - A1 Professor: Jesús P. Mena-Chalco Data: 01/12/2016 Nome completo: RA: Instruções para a prova

Leia mais

MCTA001 Algoritmos e Estruturas de Dados I. Aula 08 Árvores (parte 1) Laboratório

MCTA001 Algoritmos e Estruturas de Dados I. Aula 08 Árvores (parte 1) Laboratório MCTA001 Algoritmos e Estruturas de Dados I Aula 08 Árvores (parte 1) Laboratório 1Q-19 1 2 Árvore binária de busca (ABB) Inventada por P.F. Windley, A.D. Booth, A.J.T. Colin, e T.N. Hibbard em 1960. É

Leia mais

Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados I Algoritmos e Estruturas de Dados I Aula 19: - Comparação empírica de algoritmos de ordenação - Árvores Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2016 1 Comparação empírica de algoritmos de

Leia mais

Linguagem C Ponteiros

Linguagem C Ponteiros Linguagem C Ponteiros Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Janeiro de 2018 Unidade 14 Linguagem C - Ponteiros 1/24 Identificadores e Endereços

Leia mais

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de

Leia mais

Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores

Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto programa estiver executando

Leia mais

Alocação Dinâmica de Memória. Programação II

Alocação Dinâmica de Memória. Programação II Alocação Dinâmica de Memória Programação II Alocação dinâmica Uso da memória Uso de variáveis globais (e estáticas): Espaço reservado para uma variável global existe enquanto o programa estiver sendo executado.

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação

Leia mais

MCTA028 Programação Estruturada Aula 03: - Funções e procedimentos - Vetores e matrizes

MCTA028 Programação Estruturada Aula 03: - Funções e procedimentos - Vetores e matrizes MCTA28 Programação Estruturada Aula 3: - Funções e procedimentos - Vetores e matrizes Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-217 1 Funções 2 Funções (modularidade) Consiste em dividir uma

Leia mais

LINGUAGEM C: PONTEIROS

LINGUAGEM C: PONTEIROS LINGUAGEM C: PONTEIROS Prof. André Backes DEFINIÇÃO Variável É um espaço reservado de memória usado para guardar um valor que pode ser modificado pelo programa; Ponteiro É um espaço reservado de memória

Leia mais

Linguagem C: Listas Encadeadas

Linguagem C: Listas Encadeadas Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Introdução 2 3 Organização Introdução 1 Introdução 2 3 Introdução Introdução

Leia mais

Vetores e matrizes. MCTA028 Programação Estruturada. Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti

Vetores e matrizes. MCTA028 Programação Estruturada. Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti 1 MCTA28 Programação Estruturada Vetores e matrizes Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-218 Armazenar 1 inteiros em um programa... Usando

Leia mais

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011 Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores 14/03/2011 e 16/03/2011 Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto

Leia mais

Aula 25: Alocação Dinâmica

Aula 25: Alocação Dinâmica Aula 25: Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas de memórias heterogêneas

Leia mais

1. Se v é um vetor, qual a diferença conceitual entre as expressões v[70] e v+70? [2 ponto]

1. Se v é um vetor, qual a diferença conceitual entre as expressões v[70] e v+70? [2 ponto] Universidade Federal do ABC Avaliação: Prova 01 Disciplina: BC1424 - Algoritmos e Estruturas de Dados I Turma: Noturno Professor: Jesús P. Mena-Chalco Data: 15/03/2016 Nome completo: RA: Instruções para

Leia mais

ANHANGUERA ESTRUTURA DE DADOS AULA 06 LISTAS CIRCULARES E DUPLAMENTE ENCADEADAS. Prof. Thomás da Costa

ANHANGUERA ESTRUTURA DE DADOS AULA 06 LISTAS CIRCULARES E DUPLAMENTE ENCADEADAS. Prof. Thomás da Costa ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 06 Prof. Thomás da Costa thomascosta@aedu.com Vamos ver o PEA : PEA Estrutura de Dados Antes de iniciar a aula, vamos mostrar o andamento do PEA. Vou mostrar as

Leia mais

A linguagem C permite dois tipos de alocação de memória: Alocação estática e alocação dinâmica.

A linguagem C permite dois tipos de alocação de memória: Alocação estática e alocação dinâmica. Alocação de Memória Todo programa precisa utilizar memória para ser executado. Quando um programa inicia sua execução, ele começa a solicitar memória ao sistema operacional, ou seja, faz a alocação de

Leia mais

Estrutura de Dados Listas

Estrutura de Dados Listas Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan tiago@ci.ufpb.br Conteúdos Abordados O Conceito de Listas Listas com Representação

Leia mais

O que é um jogo digital?

O que é um jogo digital? O que é um jogo digital? Programa de Computador Dados Algoritmos Para que estudar Estrutura de Dados? Para manipular os dados dos programas usamos os ALGORITMOS e para organizar os dados da melhor forma

Leia mais

Laboratório de Programação II

Laboratório de Programação II Laboratório de Programação II Aula 08 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... 07 Entradas e saídas padronizadas;

Leia mais

Programação Computacional Aula 16: Alocação Dinâmica de Memória

Programação Computacional Aula 16: Alocação Dinâmica de Memória Programação Computacional Aula 16: Alocação Dinâmica de Memória Profa. Madeleine Medrano madeleine@icte.uftm.edu.br Definição Sempre que escrevemos um programa, é preciso reservar espaço para as informações

Leia mais

INF 1620 P3-29/06/04 Questão 1 Nome:

INF 1620 P3-29/06/04 Questão 1 Nome: INF 1620 P3-29/06/04 Questão 1 Considere um arquivo texto que descreve um conjunto de retângulos e círculos. Cada linha do arquivo contém a descrição de uma figura. O primeiro caractere da linha indica

Leia mais

Matrizes esparsas: definição

Matrizes esparsas: definição Matrizes esparsas: definição o objetivo é mostrar os métodos de armazenamento e manipulação de matrizes esparsas esparsidade de uma matriz é a relação entre o número de elementos nulos de uma matriz e

Leia mais

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal Exercício Crie uma função que recebe o número de dias até um determinado evento e calcula e retorna o equivalente em meses, semanas e dias, sem usar vetor ou o conceito de vetor. Considerar que todos os

Leia mais

Programação Procedimental GBC /1 Prof. Renan Cattelan Prática 10. Estruturas e alocação dinâmica

Programação Procedimental GBC /1 Prof. Renan Cattelan  Prática 10. Estruturas e alocação dinâmica Programação Procedimental GBC014 2015/1 Prof. Renan Cattelan www.facom.ufu.br/~renan Prática 10 Estruturas e alocação dinâmica Exercício Crie um programa para armazenar uma agenda de contatos pessoais

Leia mais

Aula 19 Árvores Rubro-Negras

Aula 19 Árvores Rubro-Negras Algoritmos e Estruturas de Dados I Aula 19 Árvores Rubro-Negras Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br Q1-2017 1 Árvores de Busca Binária Por que ABBs? São estruturas eficientes de busca (se

Leia mais

AULA 6. Conceitos. Melhores momentos. Conceitos. Conceitos. Conceitos. Conceitos

AULA 6. Conceitos. Melhores momentos. Conceitos. Conceitos. Conceitos. Conceitos Melhores momentos AULA Endereços: a memória é um vetor e o índice desse vetor onde está uma variável é o endereço da variável. Com o operador & obtemos o endereço de uma variável. Exemplos: &i é o endereço

Leia mais

Introdução a Programação. Listas Encadeadas

Introdução a Programação. Listas Encadeadas Introdução a Programação Listas Encadeadas Tópicos da Aula Hoje aprenderemos que existem, além de vetores, estruturas de dados dinâmicas que podem armazenar coleções de dados Estruturas Dinâmicas e Vetores

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção

Leia mais

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 9

Estrutura de Dados. Ricardo José Cabeça de Souza  Parte 9 Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 9 VETOR Ao declararmos um vetor, reservamos um espaço contíguo de memória para armazenar seus elementos Vetor não é uma estrutura

Leia mais

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais:

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais: Estruturas de Dados Listas Dinâmicas Simplesmente Encadeadas Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais: disponíveis

Leia mais

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco PONTEIROS E LISTAS Kalinka Regina Lucas Jaquie Castelo Branco kalinka@icmc.usp.br ALOCAÇÃO DINÂMICA DE MEMÓRIA Pode-se assumir que as variáveis declaradas na cláusula variável do pseudo-código do algoritmo

Leia mais

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que: Tabelas Hash Tabelas Hash O uso de listas ou árvores para organizar informações é interessante e produz bons resultados. Porem, em nenhuma dessas estruturas se obtém o acesso direto a alguma informação,

Leia mais

Paradigmas de Linguagens

Paradigmas de Linguagens Paradigmas de Linguagens Aula 2: Tipos de dados Professora Sheila Cáceres Tipos de dados Dados são a matéria prima da computação junto com os programas. LPs precisam manipular dados. LPS utilizam os conceitos

Leia mais

MCTA028 Programação Estruturada Aula 03: - Funções e procedimentos - Vetores e matrizes

MCTA028 Programação Estruturada Aula 03: - Funções e procedimentos - Vetores e matrizes MCTA28 Programação Estruturada Aula 3: - Funções e procedimentos - Vetores e matrizes Prof. João Henrique Kleinschmidt Material elaborado pelo Prof. Jesús P. Mena-Chalco 3Q-218 Funções Funções (modularidade)

Leia mais

Carlos Eduardo Batista. Centro de Informática - UFPB

Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Aritmética de ponteiros em C (continuação) O que acontece na memória? Ponteiro para ponteiro etc. Métodos de pesquisa

Leia mais

Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Vetores vs Estruturas Dinâmicas Vetores (arrays): Ocupa um espaço contíguo de memória Permite acesso randômico

Leia mais

Métodos Computacionais. Listas Encadeadas

Métodos Computacionais. Listas Encadeadas Métodos Computacionais Listas Encadeadas Vetores Declaração de vetor implica na especificação de seu tamanho Não se pode aumentar ou diminuir tamanho Outra alternativa no uso de vetores é alocar dinamicamente

Leia mais

Alocação Dinâmica. Introdução à Computação

Alocação Dinâmica. Introdução à Computação Alocação Dinâmica Introdução à Computação Alocação de memória Uso da memória: uso de variáveis globais (e está>cas): O espaço reservado para uma variável global existe enquanto o programa es>ver sendo

Leia mais

SCC Algoritmos e Estruturas de Dados I

SCC Algoritmos e Estruturas de Dados I SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha

Leia mais

MC3305 Algoritmos e Estruturas de Dados II. Aula 06 Árvores. Prof. Jesús P. Mena-Chalco.

MC3305 Algoritmos e Estruturas de Dados II. Aula 06 Árvores. Prof. Jesús P. Mena-Chalco. MC3305 Algoritmos e Estruturas de Dados II Aula 06 Árvores Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 Árvores Uma árvore é uma estrutura de dados mais geral que uma lista ligada. Nessa

Leia mais

i a[i]

i a[i] Técnicas de Hashing Outra forma de se fazer busca em uma tabela, é construir-se a tabela de forma a facilitar a busca, colocando-se cada elemento numa posição pré-determinada. Tal posição é obtida aplicando-se

Leia mais

MC-102 Aula 19 Ponteiros II

MC-102 Aula 19 Ponteiros II MC-102 Aula 19 Ponteiros II Instituto de Computação Unicamp 20 de Outubro de 2016 Roteiro 1 Ponteiros e Alocação Dinâmica 2 Exemplo de Alocação Dinâmica de Vetores 3 Erros Comuns ao Usar Alocação Dinâmica

Leia mais

INF 1620 P2-01/11/03 Questão 1 Nome:

INF 1620 P2-01/11/03 Questão 1 Nome: INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,

Leia mais

Aula 13 Árvores Rubro-Negras

Aula 13 Árvores Rubro-Negras MC3305 Algoritmos e Estruturas de Dados II Aula 13 Árvores Rubro-Negras Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 Árvores de Busca Binária Por que ABBs? São estruturas eficientes de

Leia mais

Ponteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

Ponteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Ponteiros e alocação dinâmica de memória Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Agenda Ponteiros Ponteiros e vetores Passagem por cópia e por referência Alocação

Leia mais

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Estruturas de Dados. Profa. Juliana Pinheiro Campos Estruturas de Dados Profa. Juliana Pinheiro Campos Vetores Forma mais simples de estruturar um conjunto de dados. Exemplo: int p[10]; // vetor de inteiros com 10 elementos Reserva de um espaço de memória

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

Aula 7 Encadeamento de Memória

Aula 7 Encadeamento de Memória Aula 7 Encadeamento de Memória Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Leia mais

Ponteiros. Introdução e Alocação Dinâmica

Ponteiros. Introdução e Alocação Dinâmica Ponteiros Introdução e Alocação Dinâmica Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma

Leia mais

1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador.

1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador. 1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador. 1) Fila 2) Pilha 3) Árvore 4) Lista 5) Grafo 2. Selecione a Estrutura de Dados que melhor representa

Leia mais

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Alocação sequencial Listas lineares,

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas

Leia mais

1. Listas sequenciais versus listas ligadas. Lista sequencial

1. Listas sequenciais versus listas ligadas. Lista sequencial Alocação Dinâmica Listas Ligadas 1. Listas sequenciais versus listas ligadas Lista sequencial Uma lista sequencial é um conjunto de elementos contíguos na memória. Um vetor é o melhor exemplo de lista

Leia mais

1/36 LISTAS. Programação II

1/36 LISTAS. Programação II 1/36 LISTAS Estrutura de Dados 2/36 Estrutura de Dados Definição - Uma Estrutura de Dados é: - uma coleção de tipos de dados, composta por tipos não estruturados básicos, tipos estruturados ou uma mistura

Leia mais

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática

Leia mais

Ponteiros & tabelas (cont.) K&R: Capítulo 5

Ponteiros & tabelas (cont.) K&R: Capítulo 5 Ponteiros & tabelas (cont.) K&R: Capítulo 5 Sinopse da aula de hoje Pointers in a nutshell & alocação dinâmica de memória Estruturas, funções e apontadores Estruturas auto-referenciadas Exemplo de aplicação:

Leia mais

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais

Leia mais

Aplicações de listas Outras estruturas

Aplicações de listas Outras estruturas Aplicações de listas Outras estruturas SCC-22 Algoritmos e Estruturas de Dados I Lucas Antiqueira Grandes números 2 Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long

Leia mais

Listas Lineares. continuando...

Listas Lineares. continuando... Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,

Leia mais

Professor: Jó Ueyama Estagiário PAE: Heitor Freitas

Professor: Jó Ueyama Estagiário PAE: Heitor Freitas Alocação Dinâmica de Memória Professor: Jó Ueyama Estagiário PAE: Heitor Freitas Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo SSC 300 - Linguagem de Programação e Aplicações

Leia mais

Essencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória.

Essencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória. Ponteiros e Arrays Ponteiros são fundamentais para a programação bem sucedida em C: Passagem de parâmetros por referência; Alocação dinâmica de memória; Aumentar a eficiência de certar rotinas. Essencialmente,

Leia mais

Programação Estruturada Prof. Rodrigo Hausen Agregados de Dados Heterogêneos (structs)

Programação Estruturada Prof. Rodrigo Hausen   Agregados de Dados Heterogêneos (structs) Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Agregados de Dados Heterogêneos (structs) 1 AGREGADO HOMOGÊNEO Um agregado homogêneo de dados é um conjunto de dados que são necessariamente

Leia mais

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0!

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0! Rafael D. Ribeiro, M.Sc. rafaeldiasribeiro@gmail.com http://www.rafaeldiasribeiro.com.br Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0! Fatorial de 0 = 1 Recursividade 1 Recursividade

Leia mais

Alocação Dinâmica em C

Alocação Dinâmica em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara

Leia mais