Estruturas de dados elementares
|
|
|
- Samuel Ribeiro Imperial
- 8 Há anos
- Visualizações:
Transcrição
1 AED 2002/2003 p.1/31 Estruturas de dados elementares Tipos básicos Estruturas Tabelas Listas Amontoados
2 AED 2002/2003 p.2/31 Tipos básicos Inteiros Reais Caracteres Ponteiros short a1; int a2; long a3; float x1; double x2; char c1; int *p1;
3 Tipos compostos Estruturas struct point float x; float y; ; Uniões struct line_point int type; union struct point float x,y; struct line float x1,y1; float x2,y2; ; AED 2002/2003 p.3/31
4 AED 2002/2003 p.4/31 Tabelas Colecção de items Inteiros, reais, caracteres Estruturas ou uniões Tabelas, Ponteiros Guardados em posições consecutivas de memória int tab[n]; n 1 Programador é responsável por respeitar limites
5 AED 2002/2003 p.5/31 Tabelas Em C, tabelas podem ser: De dimensão fixa Alocadas dinamicamente #define N 100 int tab1[n]; int *tab2 = malloc(n*sizeof(int)); Acesso a tabelas alternativo Com ponteiros Usando aritmética de ponteiros x = tab2[i]; y = *(tab2+i);
6 AED 2002/2003 p.6/31 Exemplo: crivo de Eratóstenes #define N 1000 main() int i,j,a[n]; for (i=2;i<n;i++) a[i] = 1; for (i=2;i<n;i++) if (a[i]) for(j=i; i*j<n; j++) a[i*j] = 0; for (i=2; i<n; i++) if (a[i]) printf("%4d",i); printf("\n");
7 AED 2002/2003 p.7/31 Exemplo: simulação de moedas ao ar #include <stdlib.h> int heads() return rand() < RAND_MAX/2; main(int argc, char *argv[]) int i, j, cnt; int N = atoi(argv[1]), M = atoi(argv[2]); int *f = malloc((n+1)*sizeof(int)); for (j = 0; j <= N; j++) f[j] = 0; for (i = 0; i < M; i++, f[cnt]++) for (cnt = 0, j = 0; j <= N; j++) if (heads()) cnt++; for (j = 0; j <= N; j++) printf("%2d ", j); for (i = 0; i < f[j]; i+=10) printf("*"); printf("\n");
8 AED 2002/2003 p.8/31 Listas simplesmente ligadas Conjunto de nós Cada nó contém Informação útil Ponteiro para outro nó typedef struct node *link; struct node Item item; link next;;
9 AED 2002/2003 p.9/31 Apagamento em listas x t = x >next; t x x >next = t >next; t
10 AED 2002/2003 p.10/31 Inserção em listas x t x t >next = x >next; t x x >next = t;
11 AED 2002/2003 p.11/31 Inversão de lista link reverse(link x) link t, y = x, r = NULL; while (y!= NULL) t = y->next; y->next = r; r = y; y = t; return r;
12 AED 2002/2003 p.12/31 Insertion sort Versão 1 static int *vect; void init() int i; vect = (int*) malloc(n*sizeof(int)); for (i=0; i<n; i++) vect[i] = rand() % M; void print() int i; printf("[ "); for (i=0; i<n; i++) printf("%d ", vect[i]); printf("]\n");
13 AED 2002/2003 p.13/31 Insertion sort Versão 1 void isort() /* Utiliza tabela */ int i, j; for (i=1; i<n; i++) int key = vect[i]; j = i-1; while (j>=0 && vect[j] > key) vect[j+1] = vect[j]; j--; vect[j+1] = key;
14 AED 2002/2003 p.14/31 Insertion sort Versão 2 typedef int Item; typedef struct node *link; struct node Item item; link next; ; static struct node *head; void init() int i; link pt, pv; head = NULL; for (i = 0; i < N; i++) pt = malloc(sizeof *pt); pt->next = NULL; pt->item = rand() % M; if (!head) head = pt; else pv->next = pt; pv = pt;
15 AED 2002/2003 p.15/31 Insertion sort Versão 2 void isort() /* Utiliza lista */ link pa, pb, px, py, pz; for (px = head->next, py = head; px!= NULL; px = pz) py->next = px->next; pz = px->next; for (pb=head, pa=pb; pb!=pz; pa=pb, pb=pb->next) if (pb->item > px->item) break; if (pa == pb) head = px; else pa->next = px; px->next = pb; if (pb == pz) py = px;
16 AED 2002/2003 p.16/31 Insertion sort Versão 3 typedef int Item; typedef struct node *link; struct node Item item; link next; ; static struct node *heada, *headb; void init() int i; link t, u, a; heada = (link) malloc(sizeof(*heada)); headb = (link) malloc(sizeof(*headb)); a = heada; for (i = 0, t = a; i < N; i++) t->next = malloc(sizeof *t); t = t->next; t->next = NULL; t->item = rand() % M;
17 AED 2002/2003 p.17/31 Insertion sort Versão 3 void isort() /* Utiliza lista com sentinela */ link t, u, x, b; b = headb; b->next = NULL; for (t = heada->next; t!= NULL; t = u) u = t->next; for (x = b; x->next!= NULL; x = x->next) if (x->next->item > t->item) break; t->next = x->next; x->next = t; heada->next = headb->next; headb->next = NULL;
18 AED 2002/2003 p.18/31 Lista Duplamente Ligada struct iitem int value; struct iitem *next; struct iitem *prev; ; typedef struct iitem IntItem; typedef IntItem* IntItemPtr; static IntItemPtr first = NULL; static IntItemPtr last = NULL; static IntItemPtr alloc_item() return (IntItemPtr) malloc(sizeof(intitem));
19 AED 2002/2003 p.19/31 Lista Duplamente Ligada void init() first = alloc_item(); last = alloc_item(); first->next = last; first->prev = NULL; last->next = NULL; last->prev = first;
20 AED 2002/2003 p.20/31 Lista Duplamente Ligada int insert(int value) IntItemPtr px, nitem; for (px = first->next; px!= last && px->value < value; px = px->next) ; if (px!= last && px->value == value) return 0; /* no duplicates */ nitem = alloc_item(); nitem->value = value; px->prev->next = nitem; nitem->prev = px->prev; nitem->next = px; px->prev = nitem; return 1;
21 AED 2002/2003 p.21/31 Lista Duplamente Ligada int delete(int value) IntItemPtr px; for (px = first->next; px!= last && px->value < value; px = px->next) ; if (px && px->value == value) px->prev->next = px->next; px->next->prev = px->prev; free(px); return 1; return 0;
22 AED 2002/2003 p.22/31 Lista Duplamente Ligada void delete_list() IntItemPtr px; while (px = first) first = first->next; free(px); first = last = NULL; void print_list() IntItemPtr px; printf("[ "); for (px = first->next; px!= last; px = px->next) printf("%d ", px->value); printf("]\n");
23 AED 2002/2003 p.23/31 Interface para processamento de listas #include <stdlib.h> #include "list.h" link freelist; void initnodes(int N) int i; freelist = malloc((n+1)*(sizeof *freelist)); for (i = 0; i < N+1; i++) freelist[i].next = &freelist[i+1]; freelist[n].next = NULL; link newnode(int i) link x = deletenext(freelist); x->item = i; x->next = x; return x;
24 AED 2002/2003 p.24/31 Interface para processamento de listas void freenode(link x) insertnext(freelist, x); void insertnext(link x, link t) t->next = x->next; x->next = t; link deletenext(link x) link t = x->next; x->next = t->next; return t; link Next(link x) return x->next; int Item(link x) return x->item;
25 Amontoados Uma árvore está heap-ordered se a chave de cada nó for maior ou igual às chaves dos seus filhos X T O G S M N A E R A I Nenhum nó tem uma chave superior à raiz Uma árvore binária é completa se apenas o último nível estiver incompleto, e faltarem apenas os nós mais à direita. AED 2002/2003 p.25/31
26 AED 2002/2003 p.26/31 Amontoados X T O G S M N A E R A I X T O G S M N A E R A I Parente do nó é o nó Filhos do nó são os nós e
27 AED 2002/2003 p.27/31 Operações em amontoados: fixup Chamada quando a prioridade de um nó é aumentada Nó tem de ser deslocado para cima fixup(item a[], int k) while (k > 1 && less(a[k/2], a[k])) exch(a[k], a[k/2]); k = k/2;
28 AED 2002/2003 p.28/31 Operações em amontoados: fixdown Chamada quando a prioridade de um nó é diminuída Nó tem de ser deslocado para baixo, até ao último nível ou até que a prioridade do nó alterado seja maior que ambos os filhos fixdown(item a[], int k, int N) int j; while (2*k <= N) j = 2*k; if (j < N && less(a[j], a[j+1])) j++; if (!less(a[k], a[j])) break; exch(a[k], a[j]); k = j;
29 AED 2002/2003 p.29/31 Fila de prioridades #include <stdlib.h> #include "Item.h" static Item *pq; static int N; void PQinit(int maxn) pq = malloc((maxn+1)*sizeof(item)); N = 0; int PQempty() return N == 0; void PQinsert(Item v) pq[++n] = v; fixup(pq, N); Item PQdelmax() exch(pq[1], pq[n]); fixdown(pq, 1, N-1); return pq[n--];
30 AED 2002/2003 p.30/31 Ordenação com fila de prioridades void PQsort(Item a[], int l, int r) int k; PQinit(r-l+1); for (k = l; k <= r; k++) PQinsert(a[k]); for (k = r; k >= l; k--) a[k] = PQdelmax();
31 AED 2002/2003 p.31/31 Heapsort #define pq(a) a[l-1+a] void heapsort(item a[], int l, int r) int k, N = r-l+1; for (k = N/2; k >= 1; k--) fixdown(&pq(0), k, N); while (N > 1) exch(pq(1), pq(n)); fixdown(&pq(0), 1, --N);
Filas de prioridade e heapsort
1 Filas de prioridade e heapsort Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/algoritmos/aulas/hpsrt.html 2 Filas de prioridade e heapsort Fila de prioridade: fila na qual
Listas ligadas/listas encadeadas
1 Listas ligadas/listas encadeadas Leitura recomendada: http://www.ime.usp.br/~pf/algoritmos/aulas/lista.html 2 Processamento elementar de listas Definição mais restritiva (tipo de lista possivelmente
Algoritmos e Estruturas de Dados
Introdução aos Algoritmos e Estruturas de Dados 2 o Teste - A LEIC Alameda, 2007/2008 Data: 12 de Junho de 2008 2 o Semestre Duração: 2h RESOLUÇÃO I. (2.5+2.5 = 5.0 val.) I.a) Suponha que está a trabalhar
INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2004/2005 2 o Semestre RESOLUÇÃO DO 2 o TESTE A I. (2.0+1.5+1.5 = 5.0 val.) a) Qual das seguintes declarações pode ser usada para
Tipos abstratos de dados; pilhas e filas
1 Tipos abstratos de dados; pilhas e filas Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html http://www.ime.usp.br/~pf/algoritmos/aulas/fila.html
INSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados Ano Lectivo de 2006/2007 2 o Semestre 2 o Teste A - 2 de Julho de 2007 Duração: 2h - O teste é sem consulta. - Para cada questão
Algoritmos e Estruturas de Dados
Introdução aos Algoritmos e Estruturas de Dados Repescagem 2 o Teste - B Ano lectivo: 2010/2011 2 o Semestre RESOLUÇÃO DA REPESCAGEM DO 2 o TESTE I. (2.5 + 2.5 + 3.0 = 8.0 val.) I.a) Considere o tipo Voo
Ponteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Aritmética de ponteiros em C (continuação) O que acontece na memória? Ponteiro para ponteiro etc. Métodos de pesquisa
Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas
Listas Ligadas (Encadeadas) Matrizes são estruturas de dados muito úteis fornecidas nas linguagens de programação. No entanto, elas têm pelo menos duas limitações: 1- Seu tamanho tem que ser conhecido
Métodos Computacionais. Tipos Estruturados
Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também
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
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010 Aluno: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova deve ser completamente
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
Programação Estruturada I
Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 [email protected] 2 [email protected] Última Atualização:
A regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out).
Fila Algumas aplicações impõem regras de acesso às informações armazenados em estruturas de dados, restringindo como os dados são inseridos e removidos da estrutura. A fila, também conhecida como QUEUE,
Alocação Dinâmica de Memória
Alocação Dinâmica de Memória Luiz Chaimowicz, Raquel O. Prates, Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados II DCC UFMG Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática
Algoritmos e Estruturas de Dados: Lista Duplamente Encadeada
Lista Duplamente Encadeada Interface 1/13 dlist_init void dlist_init(dlist *list, void (*destroy)(void *data)); Algoritmos e Estruturas de Dados: Lista Duplamente Encadeada Rômulo Silva de Oliveira Departamento
UNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Especial Resolução 19/07/2013 A. [4.75 val] Algoritmos de ordenação e de pesquisa (usando memória estática
Filas com prioridade - Introdução (1)
AED Algoritmos e Estruturas de Dados LEEC - 2004/2005 Filas com Prioridade Filas com prioridade - Introdução (1) Filas com prioridade (Priority Queues) usadas em diversas aplicações: Despacho (scheduler)
Linguagens de Programação I
Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler
1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço
Anhanguera Educacional S.A. Centro Universitário Ibero-Americano
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações
Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02
Programação 1 Atribuição, operadores aritméticos, entrada de dados Técnico em Eletrônica Semestre 5 02 Armazenando na memória tipo de variável #include #include main() { int ano; Declaração
Algoritmos e Estruturas de Dados
Introdução aos Algoritmos e Estruturas de Dados 2 o Teste - A Ano lectivo: 2010/2011 2 o Semestre RESOLUÇÃO DO 2 o TESTE Grupo I (2.0 + 2.5 + 2.0 = 6.5 val.) I.a) Considere os tipos enum ocasiao e Presente
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Prova - 23a de junho de 2008
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Prova - 23a de junho de 2008 Nome: Assinatura: 1 a Questão: (2.0 pontos) Números Aleatórios Escreva um programa que gere N números
Estruturas (Registros)
Estruturas (Registros) Agrupa conjunto de tipos de dados distintos sob um único nome string string inteiro inteiro inteiro float float Cadastro Pessoal Nome Endereço Telefone Idade Data de Nascimento Peso
GABARITO EXERCÍCIOS ÁRVORES arv.h struct noarv { int info; struct noarv * esq; struct noarv * dir; }; typedef struct noarv NoArv;
GABARITO EXERCÍCIOS ÁRVORES arv.h struct noarv int info; struct noarv * esq; struct noarv * dir; ; typedef struct noarv NoArv; NoArv * arv_cria(int v, NoArv * e, NoArv * d); NoArv * arv_insere(noarv *
Ponteiros - Parte I. Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória
Ponteiros - Parte I Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória Ponteiros Um ponteiro é uma variável que contém um endereço de memória. Esse endereço é normalmente
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,
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,
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem
Algoritmos Eficientes de Ordenação
AED 2002/2003 p.1/22 Algoritmos Eficientes de Ordenação Quick Sort Merge Sort Heap Sort Utilizar informação das chaves: Counting Sort Radix Sort AED 2002/2003 p.2/22 Quick Sort int partition(item a[],
Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas
Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany [email protected] ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include
AED 2002/2003 p.1/16. Tabelas de Dispersão. Funçoes de dispersão Encadeamento externo Procura linear Double hashing Eficiência da procura
AED 2002/2003 p.1/16 Tabelas de Dispersão Funçoes de dispersão Encadeamento externo Procura linear Double hashing Eficiência da procura AED 2002/2003 p.2/16 Funções de dispersão Deve distribuir as chaves
Melhores momentos AULA 14
Melhores momentos AULA Problema O algoritmo de Dijkstra resolve o problema da SPT: Dado um vértice s de um digrafo com custos não-negativos nos arcos, encontrar uma SPT com raiz s 5 5 5 Simulação 5 Simulação
LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados
LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS Listas Lineares Como visto anteriormente, as operações básicas para o nosso TAD Lista Linear são: FLVazia Vazia Retira Insere Imprime A implementação através de arrays
Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento
Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double
O que é um apontador em C (type pointer in C)?
O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora
Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 11 Pilhas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses
1 3 Estrutura de dados 2 Ponteiro Ponteiro 2 O ponteiro é um tipo de dado como int, char ou float. A diferença do ponteiro ponteiro guardará um endereço de memória. Por meio deste endereço pode-se acessar
AED Algoritmos e Estruturas de Dados LEEC /2006. Algoritmos de Ordenação 1ª parte
AED Algoritmos e Estruturas de Dados LEEC - 2005/2006 Algoritmos de Ordenação 1ª parte Porquê estudar algoritmos elementares Razões de ordem prática (de ordenação) Fáceis de codificar e por vezes suficientes
HeapSort. Estrutura de Dados II Jairo Francisco de Souza
HeapSort Estrutura de Dados II Jairo Francisco de Souza HeapSort Algoritmo criado por John Williams (1964) Complexidade O(NlogN) no pior e médio caso Mesmo tendo a mesma complexidade no caso médio que
Atividade de laboratório listas encadeadas simples
Atividade de laboratório listas encadeadas simples 1. Estrutura básica Uma lista encadeada simples é uma estrutura de dados composta de uma seqüência de estruturas elementares chamadas nós. Cada nó contém
Listas (Parte 2) Túlio Toffolo [email protected] www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I
Listas (Parte 2) Túlio Toffolo [email protected] www.toffolo.com.br BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento
ALGORITMOS E ESTRUTURAS DE DADOS CES-11
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Revisão CES-11 Tipos escalares primitivos Tipos constituídos
3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação
Aula T13 BCC202 Árvores. Túlio Toffolo
Aula T13 BCC202 Árvores Túlio Toffolo www.decom.ufop.br/toffolo Conceitos básicos n Organiza um conjunto de acordo com uma estrutura hierárquica. n Contém elementos que são chamados de nós n O pai de todos
Linguagem C: Ponteiros - Alocação Dinâmica
Prof. Paulo R. S. L. Coelho [email protected] Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Ponteiros Alocação Dinâmica de Memória 2 3 4 Organização Ponteiros Alocação
