Estruturas. AED 2003/2004 p.1/65
|
|
- Rui Sales Bugalho
- 6 Há anos
- Visualizações:
Transcrição
1 AED 2003/2004 p.1/65 Estruturas Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Apontadores para Estruturas Estruturas Auto-Referenciadas Typedef Exemplos Tópicos: Unions e Bit-Fields
2 Introdução As estruturas permitem definir estruturas de dados sofisticadas, as quais possibilitam a agregação de diferentes tipos de declarações Exemplo: struct point int x; int y; É possível declararar variáveis do tipo estrutura struct point x, z; É possível manipular os campos de variáveis do tipo estrutura x.x = 1; x.y = 2; z.x = 10; z.y = 20; AED 2003/2004 p.2/65
3 AED 2003/2004 p.3/65 Operações sobre Estruturas Declaração: struct point int x; int y; Introduz um novo tipo de dados Definição: struct point z; Define a variável z como uma estrutura do tipo struct point Inicialização: tipo nome = valores struct point z = 100, 200 ;
4 Operações sobre Estruturas Manipulação: nome-estrutura.membro z.x = 125; z.y = 500; Estruturas podem incluir estruturas: struct rect struct point a, b; ; struct rect p;... p.a.x = 25; p.b.y = 32; Operações válidas: cópia, atribuição como entidade, acesso ao endereço ou acesso aos seus membros Cópia e atribuição incluem passagem de parâmetros para funções e retorno de valores de funções Estruturas não podem ser comparadas AED 2003/2004 p.4/65
5 AED 2003/2004 p.5/65 Estruturas e Funções Funções podem retornar estruturas: struct point makepoint(int x, int y) struct point temp; temp.x = x; temp.y = y; return temp; Função retorna cópia da estrutura temp
6 AED 2003/2004 p.6/65 Estruturas e Funções Passagem de estruturas como parâmetros é feita por valor: struct point addpoint(struct point p1, struct point p2) p1.x += p2.x; p1.y += p2.y; return p1; Chamada addpoint(pa, pb) não altera valores da estrutura pa
7 AED 2003/2004 p.7/65 Estruturas, Funções e Ponteiros Passagem de estruturas grandes como parâmetros é ineficiente Utilizam-se normalmente ponteiros para estruturas: struct point origin, *pp; pp = &origin; printf( Origem: (%d, %d)\n, (*pp).x, (*pp).y); Notação (*pointer).struct-member pode ser substituída por pointer->struct-member struct point origin, *pp; pp = &origin; printf( Origem: (%d, %d)\n, pp->x, pp->y);
8 AED 2003/2004 p.8/65 Vectores de Estruturas Permitem representar conjuntos de dados agregados: struct key char *word; /* palavra-chave */ int count; /* # ocorrências de palavra-chave */ keytab[nkeys]; /* Vector de estruturas */ ou, struct key char *word; /* palavra-chave */ int count; /* # ocorrências de palavra-chave */ ; struct key keytab[nkeys]; /* Vector de estruturas */
9 AED 2003/2004 p.9/65 Vectores de Estruturas Inicialização: struct key char *word; /* palavra-chave */ int count; /* # ocorrências de palavra-chave */ keytab[] = auto, 0, break, 0, case, 0,... ; Chavetas interiores desnecessárias na inicialização de estruturas compostas apenas por variáveis simples ou strings
10 AED 2003/2004 p.10/65 Contador de Palavras Chave Escrever um programa em C que conta o número de ocorrências de cada palavra-chave da linguagem C #include <stdio.h> #include <ctype.h> #include <string.h> struct key char *word; /* palavra-chave */ int count; /* # ocorrências de palavra-chave */ keytab[] = "auto", 0, "break", 0,... ; #define NKEYS 24 #define MAXWORD 100 int getword(char *, int); int binsearch(char *, struct key *, int);
11 AED 2003/2004 p.11/65 Contador de Palavras Chave main() /* count "C" keywords */ int n; char word[maxword]; while (getword(word, MAXWORD)!= EOF) if (isalpha(word[0])) if((n = binsearch(word, keytab, NKEYS)) >= 0) keytab[n].count++; for (n=0; n < NKEYS; n++) if (keytab[n].count > 0) printf("%4d %s\n", keytab[n].count, keytab[n].word);
12 AED 2003/2004 p.12/65 Contador de Palavras Chave /* find word in tab[0]...tab[n-1] */ int binsearch(char *word, struct key tab[], int n) int low, high, mid, cond; low = 0; high = n - 1; while (low <= high) mid = (low+high) / 2; if((cond = strcmp(word, tab[mid].word)) < 0) high = mid - 1; else if (cond > 0) low = mid + 1; else return mid; return -1;
13 Contador de Palavras Chave int getword(char *word, int lim) /* get next word from input */ int c; char *w = word; while (isspace(c = getc(stdin))) ; if (c!= EOF) *w++ = c; if (!isalpha(c)) *w = \0 ; return c; for (; --lim > 0; w++) if (!isalnum(*w = getc(stdin))) ungetc(*w, stdin); break; *w = \0 ; return word[0]; AED 2003/2004 p.13/65
14 Apontadores para Estruturas Escrever um programa em C que conta o número de ocorrências de cada palavra-chave da linguagem C, utilizando apontadores para estruturas #include <stdio.h> #include <ctype.h> #include <string.h> struct key char *word; /* palavra-chave */ int count; /* # ocorrências de palavra-chave */ keytab[] = "auto", 0, "break", 0,... ; #define NKEYS 24 #define MAXWORD 100 int getword(char *, int); struct key *binsearch(char *, struct key *, int); AED 2003/2004 p.14/65
15 AED 2003/2004 p.15/65 Apontadores para Estruturas main() /* count "C" keywords */ char word[maxword]; struct key *p; while (getword(word, MAXWORD)!= EOF) if (isalpha(word[0])) if((p = binsearch(word, keytab, NKEYS))!= NULL) p->count++; for (p=keytab; p < keytab+nkeys; p++) if (p->count > 0) printf("%4d %s\n", p->count, p->word);
16 AED 2003/2004 p.16/65 Apontadores para Estruturas /* find word in tab[0]...tab[n-1] */ struct key *binsearch(char *word, struct key tab[], int n) int cond; struct key *low = &tab[0]; struct key *high = &tab[n]; /* valid address */ struct key *mid; while (low < high) mid = low + (high-low) / 2; /* cannot add pointers, just subtract */ if((cond = strcmp(word, mid->word)) < 0) high = mid; else if (cond > 0) low = mid + 1; else return mid; return NULL;
17 Apontadores para Estruturas int getword(char *word, int lim) /* get next word from input */ int c; char *w = word; while (isspace(c = getc(stdin))) ; if (c!= EOF) *w++ = c; if (!isalpha(c)) *w = \0 ; return c; for (; --lim > 0; w++) if (!isalnum(*w = getc(stdin))) ungetc(*w, stdin); break; *w = \0 ; return word[0]; AED 2003/2004 p.17/65
18 AED 2003/2004 p.18/65 Operações Válidas com Ponteiros Recapitular: Atribuições entre ponteiros do mesmo tipo Somar inteiro a ponteiro Subtrair inteiro a ponteiro Subtrair dois ponteiros (num mesmo vector) Comparar dois ponteiros (num mesmo vector) Atribuição e comparação com 0
19 AED 2003/2004 p.19/65 Estruturas Auto-Referenciadas As estruturas auto-referenciadas permitem criar estruturas de dados dinâmicas, utilizando ponteiros: listas (simplesmente e duplamente ligadas), árvores, tabelas de dispersão, etc. Um exemplo: Implementar pilha de valores inteiros utilizando ponteiros e estruturas
20 AED 2003/2004 p.20/65 istack.h extern void init(); extern int is_empty(); extern void push(int value); extern int pop();
21 AED 2003/2004 p.21/65 istack.c #include <stdio.h> #include <stdlib.h> struct iitem int value; struct iitem *next; ; static struct iitem *top = NULL; static struct iitem *alloc_item() return (struct iitem *) malloc(sizeof(struct iitem)); void init() top = NULL; int is_empty() return top == NULL;
22 AED 2003/2004 p.22/65 istack.c void push(int value) struct iitem *nitem = alloc_item(); nitem->value = value; nitem->next = top; top = nitem; int pop() if (!is_empty()) int rvalue = top->value; struct iitem *ptmp = top; top = top->next; free(ptmp); return rvalue; return -1;
23 AED 2003/2004 p.23/65 Typedef O typedef permite associar um nome com um tipo de dados já existente typedef int Inteiro; main() Inteiro myint;... É usual utilizar typedef na manipulação de estruturas auto-referenciadas struct iitem int value; struct iitem *prev; struct iitem *next; ; typedef struct iitem IntItem; typedef IntItem* IntItemPtr;
24 AED 2003/2004 p.24/65 iqueue2.h extern int init(); extern int is_empty(); extern void push(int value); extern int pop(); extern void unshift(int value); extern int shift();
25 AED 2003/2004 p.25/65 iqueue2.c #include <stdio.h> #include <stdlib.h> struct iitem int value; struct iitem *prev; struct iitem *next; ; typedef struct iitem IntItem; typedef IntItem* IntItemPtr; static IntItemPtr topptr = NULL; static IntItemPtr botptr = NULL; static IntItemPtr alloc_item() return (struct iitem *) malloc(sizeof(struct iitem)); void init() topptr = NULL; botptr = NULL; int is_empty() return topptr == NULL;
26 AED 2003/2004 p.26/65 iqueue2.c void push(int value) IntItemPtr nitem = alloc_item(); nitem->value = value; nitem->prev = topptr; nitem->next = NULL; if (topptr) topptr->next = nitem; else botptr = nitem; topptr = nitem;
27 AED 2003/2004 p.27/65 iqueue2.c int pop() int rvalue; IntItemPtr ptmp; if (is_empty()) return -1; rvalue = topptr->value; ptmp = topptr; topptr = topptr->prev; if (topptr) topptr->next = NULL; else botptr = NULL; free(ptmp); return rvalue;
28 AED 2003/2004 p.28/65 iqueue2.c void unshift(int value) IntItemPtr nitem = alloc_item(); nitem->value = value; nitem->next = botptr; nitem->prev = NULL; if (botptr) botptr->prev = nitem; else topptr = nitem; botptr = nitem;
29 AED 2003/2004 p.29/65 iqueue2.c int shift() int rvalue; IntItemPtr; if (is_empty()) return -1; rvalue = botptr->value; ptmp = botptr; botptr = botptr->next; if (botptr) botptr->prev = NULL; else topptr = NULL; free(ptmp); return rvalue;
30 AED 2003/2004 p.30/65 Tabelas de Dispersão I Permitem manter conjuntos de palavras Operações: lookup(char*) insert(char*) delete(char*) Exemplo simples, para ilustrar utilizações de listas com tabelas
31 AED 2003/2004 p.31/65 Tabela de Símbolos symtab.h extern void init(); extern char *lookup(char *word); extern char *insert(char *word); extern char *delete(char *word);
32 AED 2003/2004 p.32/65 Tabela de Símbolos symtab.c #include <string.h> #include <stdlib.h> #define TABDIM 101 struct witem char *word; struct witem *next; ; typedef struct witem WORDITEM; typedef WORDITEM* WORDITEMPTR; static WORDITEMPTR *symtab = NULL;
33 AED 2003/2004 p.33/65 symtab.c #define HBASE 31 static unsigned hashvalue(char *word) unsigned hval = 0; for(hval=0; *word;) hval = *(word++) + HBASE * hval; return hval % TABDIM; void init() WORDITEMPTR *px; symtab = (WORDITEMPTR*) malloc(tabdim*sizeof(worditemptr)); for(px=symtab; px<symtab+tabdim; px++) *px = NULL;
34 AED 2003/2004 p.34/65 symtab.c char *lookup(char *word) int whval = hashvalue(word), comp; WORDITEMPTR px = symtab[whval]; for (; px && (comp = strcmp(px->word, word)) < 0; px = px->next) ; if (px &&!comp) return px->word; return NULL;
35 AED 2003/2004 p.35/65 symtab.c char *insert(char *word) int whval = hashvalue(word), comp; char *nword = NULL; WORDITEMPTR px = symtab[whval], py = px, pw; for (; px && (comp = strcmp(px->word, word)) < 0; py = px, px = px->next) ; if (!px comp) nword = (char*) malloc(strlen(word)+1); strcpy(nword, word); pw = (WORDITEMPTR) malloc(sizeof(worditem)); pw->word = nword; pw->next = px; if (px == py) symtab[whval] = pw; else py->next = pw; return nword;
36 AED 2003/2004 p.36/65 symtab.c char *delete(char *word) int whval = hashvalue(word), comp; char *rword = NULL; WORDITEMPTR px = symtab[whval], py = px; for (; px && (comp = strcmp(px->word, word)) < 0; py = px, px = px->next) ; if (px &&!comp) rword = px->word; if (px == py) symtab[whval] = px->next; else py->next = px->next; free(px); return rword;
37 AED 2003/2004 p.37/65 ADTs Tipos de Dados Abstractos Permitem ocultar detalhes de implementação das estruturas de dados Permitem reutilizar código ADTs de primeira classe: Permitem utilizar réplicas do mesmo ADT
38 AED 2003/2004 p.38/65 item.h #ifndef ItemDef #define ItemDef typedef int Item; #endif
39 AED 2003/2004 p.39/65 queue.h #ifndef QueueDef #define QueueDef #include "item.h" #define T Queue_T typedef struct T *T; extern T Queue_new(); extern int Queue_empty(T queue); extern void Queue_queue(T queue, Item item); extern Item Queue_dequeue(T queue); #undef T #endif
40 struct Queue_T QElem put; QElem get; ; AED 2003/2004 p.40/65 queue.c #include <stdlib.h> #include <assert.h> #define NEW(p) ((p) = malloc((long)sizeof *(p))) #define DEL(p) free(p); #include "item.h" #include "queue.h" typedef struct QElem Item item; struct QElem *next; * QElem;
41 AED 2003/2004 p.41/65 queue.c (Cont.) Queue_T Queue_new() Queue_T newq; NEW(newq); return newq; void Queue_queue(Queue_T queue, Item item) QElem nitem; NEW(nitem); nitem->item = item; nitem->next = NULL; if (queue->put) queue->put->next = nitem; else queue->get = nitem; queue->put = nitem;
42 queue.c (Cont.) Item Queue_dequeue(Queue_T queue) Item ritem; QElem ptmp; assert(!queue_empty(queue)); ritem = queue->get->item; ptmp = queue->get; queue->get = queue->get->next; if (!queue->get) queue->put = NULL; DEL(ptmp); return ritem; int Queue_empty(Queue_T queue) return queue->get == NULL; AED 2003/2004 p.42/65
43 Exemplos Adicionais AED 2003/2004 p.43/65
44 AED 2003/2004 p.44/65 Estruturas Auto-Referenciadas Um exemplo: Implementar fila de valores inteiros utilizando ponteiros e estruturas
45 AED 2003/2004 p.45/65 iqueue.h extern void init(); extern int is_empty(); extern void queue(int value); extern int dequeue();
46 AED 2003/2004 p.46/65 iqueue.c #include <stdio.h> #include <stdlib.h> struct iitem int value; struct iitem *next; ; static struct iitem *putptr = NULL; static struct iitem *getptr = NULL; static struct iitem *alloc_item() return (struct iitem *) malloc(sizeof(struct iitem)); void init() putptr = NULL; getptr = NULL; int is_empty() return getptr == NULL;
47 void queue(int value) struct iitem *nitem = alloc_item(); nitem->value = value; nitem->next = NULL; if (putptr) putptr->next = nitem; else getptr = nitem; putptr = nitem; int dequeue() int rvalue; struct iitem *ptmp; if (is_empty()) return -1; rvalue = getptr->value; ptmp = getptr; getptr = getptr->next; if (!getptr) putptr = NULL; free(ptmp); return rvalue; AED 2003/2004 p.47/65 iqueue.c
48 AED 2003/2004 p.48/65 Estruturas Auto-Referenciadas Um exemplo: Implementar fila generalizada de valores inteiros utilizando ponteiros e estruturas Operações: push(int), pop(), unshift(int), shift()
49 AED 2003/2004 p.49/65 iqueue2.h extern int init(); extern int is_empty(); extern void push(int value); extern int pop(); extern void unshift(int value); extern int shift();
50 AED 2003/2004 p.50/65 iqueue2.c #include <stdio.h> #include <stdlib.h> struct iitem int value; struct iitem *prev; struct iitem *next; ; static struct iitem *topptr = NULL; static struct iitem *botptr = NULL; static struct iitem *alloc_item() return (struct iitem *) malloc(sizeof(struct iitem)); void init() topptr = NULL; botptr = NULL; int is_empty() return topptr == NULL;
51 AED 2003/2004 p.51/65 iqueue2.c void push(int value) struct iitem *nitem = alloc_item(); nitem->value = value; if (topptr) topptr->next = nitem; else botptr = nitem; nitem->prev = topptr; nitem->next = NULL; topptr = nitem;
52 AED 2003/2004 p.52/65 iqueue2.c int pop() int rvalue; struct iitem *ptmp; if (is_empty()) return -1; rvalue = topptr->value; ptmp = topptr; topptr = topptr->prev; if (topptr) topptr->next = NULL; else botptr = NULL; free(ptmp); return rvalue;
53 AED 2003/2004 p.53/65 iqueue2.c void unshift(int value) struct iitem *nitem = alloc_item(); nitem->value = value; if (botptr) botptr->prev = nitem; else topptr = nitem; nitem->next = botptr; nitem->prev = NULL; botptr = nitem;
54 AED 2003/2004 p.54/65 iqueue2.c int shift() int rvalue; struct iitem *ptmp; if (is_empty()) return -1; rvalue = botptr->value; ptmp = botptr; botptr = botptr->next; if (botptr) botptr->prev = NULL; else topptr = NULL; free(ptmp); return rvalue;
55 AED 2003/2004 p.55/65 Tabelas Dinâmicas II Um exemplo: Implementar fila generalizada de valores inteiros utilizando uma tabela dinâmica Operações: push(int), pop(), unshift(int), shift()
56 AED 2003/2004 p.56/65 iqueue.c #include <stdio.h> #include <stdlib.h> #define INITQUEUESIZE 5 static int *iqueue; static int *queue_top; static int queue_dim; static int *topptr = NULL; static int *botptr = NULL;
57 AED 2003/2004 p.57/65 iqueue.c static int is_full() return topptr == botptr-1 (botptr == iqueue && topptr == queue_top-1); void init() iqueue = (int*) malloc(initqueuesize * sizeof(int)); topptr = iqueue; botptr = iqueue; queue_dim = INITQUEUESIZE; queue_top = iqueue+queue_dim; int is_empty() return topptr == botptr;
58 AED 2003/2004 p.58/65 iqueue.c static void increase_queue_size() int *pa, *pb; int *ptmp = iqueue, *ptmptop = queue_top; int prev_dim = queue_dim; queue_dim = 2 * queue_dim; iqueue = (int*) malloc(queue_dim * sizeof(int)); queue_top = iqueue + queue_dim; for (pa=botptr, pb=iqueue; pa!= topptr; ) *(pb++) = *(pa++); if (pa == ptmptop) pa = ptmp; botptr = iqueue; topptr = iqueue + prev_dim - 1; free(ptmp);
59 AED 2003/2004 p.59/65 iqueue.c void push(int value) if (is_full()) increase_queue_size(); *(topptr++) = value; if (topptr == queue_top) topptr = iqueue; int pop() int rvalue; if (is_empty()) return -1; if (topptr == iqueue) topptr = queue_top; rvalue = *(--topptr); return rvalue;
60 AED 2003/2004 p.60/65 iqueue.c void unshift(int value) if (is_full()) increase_queue_size(); if (botptr == iqueue) botptr = queue_top; *(--botptr) = value; int shift() int rvalue; if (is_empty()) return -1; rvalue = *(botptr++); if (botptr == queue_top) botptr = iqueue; return rvalue;
61 AED 2003/2004 p.61/65 Exemplos Adicionais Lista de inteiros simplesmente ligada: Inserção (ordenada) de elemento Remoção de elemento #include <stdlib.h> struct iitem int value; struct iitem *next; ; typedef struct iitem IntItem; typedef IntItem* IntItemPtr; static IntItemPtr first = NULL; static IntItemPtr alloc_item() return (IntItemPtr) malloc(sizeof(intitem)); void init() first = NULL;
62 AED 2003/2004 p.62/65 Inserção Ordenada de Elemento int insert(int value) IntItemPtr px, py, nitem; for (px = first, py = px; px; py = px, px = px->next) if (px->value > value) break; else if (px->value == value) return 0; /* no duplicates */ nitem = alloc_item(); nitem->value = value; nitem->next = px; if (px == first) first = nitem; else py->next = nitem; return 1;
63 AED 2003/2004 p.63/65 Remoção de Elemento int delete(int value) IntItemPtr px, py; for (px = first, py = px; px; py = px, px = px->next) if (px->value == value) if (px == first) first = first->next; else py->next = px->next; free(px); return 1; return 0;
64 AED 2003/2004 p.64/65 Escrever Lista de Inteiros void print_list() IntItemPtr px; printf("[ "); for (px = first; px; px = px->next) printf("%d ", px->value); printf("]\n");
65 AED 2003/2004 p.65/65 Utilização de Filas Múltiplas Permite utilizar número arbitrário de filas Filas trabalham sobre tipo Item, dependente da aplicação
Apoio à Realização do 2º Projecto. AED 2003/2004 p.1/21
Apoio à Realização do 2º Projecto AED 2003/2004 p.1/21 AED 2003/2004 p.2/21 Funcionalidade Extra Contar funções lógicas com repetição Utilizar representação única para cada função lógica Independente da
Leia maisEstruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo
Estruturas K&R: Capitulo 6 Estruturas Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo 2 1 Motivação Definir uma representação agregada na linguagem C para manipular
Leia maisEstruturas de dados elementares
AED 2002/2003 p.1/31 Estruturas de dados elementares Tipos básicos Estruturas Tabelas Listas Amontoados AED 2002/2003 p.2/31 Tipos básicos Inteiros Reais Caracteres Ponteiros short a1; int a2; long a3;
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 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
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 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
Leia maisAED 2002/2003 p.1/19. Tipos Abstractos. Necessidade de tipos de dados abstractos Objectos Pilhas FIFOs e filas
AED 2002/2003 p.1/19 Tipos Abstractos Necessidade de tipos de dados abstractos Objectos Pilhas FIFOs e filas AED 2002/2003 p.2/19 Tipos Abstractos de Dados (ADT) Mesmas estruturas (Pilhas, FIFOs, Listas)
Leia maisPonteiros & 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 maisComputação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas
Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany fabianyl@utfpr.edu.br ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include
Leia maisProgramaçã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 maisTipos 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
Leia maisMelhores momentos AULA 14
Melhores momentos AULA 14 Filas Fonte: http://justoutsidetheboxcartoon.com/ PF 5.1 http://www.ime.usp.br/ pf/algoritmos/aulas/la.html Filas Uma la (=queue) é uma lista dinâmica em que todas as inserções
Leia maisSumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?
Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros
Leia maisEstruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C
Estruturas de Dados Revisão de Ponteiros Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros e Arranjos
Leia maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Tipos Estruturados Tipo estrutura Definição de novos tipos Aninhamento de Estruturas Vetores de estruturas
Leia maisPonteiros 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
Leia maisAtividade 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
Leia maisADTs (Abstract Data Types): Motivação
ADTs (Abstract Data Types): Motivação Mesmas estruturas são usadas com vários tipos de dados Listas Pilhas Amontoado FIFOs Inteiros Reais Strings Estruturas O procedimento para inserir um inteiro, real,
Leia maisLinguagem C. Ponteiros. Alex Vidigal Bastos.
Linguagem C Ponteiros Alex Vidigal Bastos alexvbh@gmail.com Ponteiros Ponteiros são variáveis que contém endereços. Estas variáveis apontam para algum determinado endereço da memória. Em geral, o ponteiro
Leia maisLinguagem C Ficheiros Compilação Separada
Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir
Leia maisBásico: estrutura de programa, sintaxe Interface com linha de comando
Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências
Leia maisLinguagens 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
Leia maisListas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node {
Listas (cont.) K&R: Capitulo 6 Lista Simplesmente Ligada Conjunto de nós head NULL Cada nó contém Informação útil Ponteiro para o próimo nó typedef struct node Item item; struct node *net; *link; Item
Leia maisALGORITMOS E ESTRUTURAS DE DADOS CES-11
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Revisão CES-11 Tipos escalares primitivos Tipos constituídos
Leia maisESTRUTURAS DE DADOS (LEI, LM, LEE) PROGRAMAÇÃO III (LTSI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2017/2018
ESTRUTURAS DE DADOS (LEI, LM, LEE) PROGRAMAÇÃO III (LTSI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2017/2018 Apontadores O que é um apontador? Variável que contém
Leia mais3. 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
Leia maisIntrodução a Programação. Tipos Estruturados de Dados
Introdução a Programação Tipos Estruturados de Dados Tópicos da Aula Hoje aprenderemos a trabalhar com tipos de dados mais complexos Tipos Primitivos x Tipos Estruturados Conceito de Tipos Estruturados
Leia maisREVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
REVISÃO DE C Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Ponteiros Alocação dinâmica de memória Recursão INSTITUTO DE COMPUTAÇÃO - UFF 2 PONTEIROS PONTEIROS C permite o armazenamento
Leia maisINSTITUTO 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
Leia mais1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000
#include #include #include #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 1ª versão int main() { DISCO listadiscos[maxdiscos];
Leia maisAlgoritmos 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 maisInstituto 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 1 o Teste A - 12 de Abril de 2007 Duração: 2h - O teste é sem consulta. - Para cada questão
Leia maisManipulação de Arquivos Exercício/Exemplo:
Manipulação de Arquivos Exercício/Exemplo: Com o que vimos até o momento sobre manipulação de arquivos. Construa um função em C que possua a capacidade de escrever um inteiro em um arquivo binário. Escreva
Leia maisHello 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
Leia maisINSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2002/2003 2 o Semestre Repescagem do 2 o Teste (A) 18 de Julho de 2003 Duração: 2h - O teste é sem consulta. - Para cada questão
Leia maisUniversidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Estruturas em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Estruturas em C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA
Leia maisLinguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Leia maisRotinas, Modos e Tipos de Passagem de Parâmetros
Linguagens de Programação Rotinas, Modos e Tipos de Passagem de Parâmetros Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Chamada de Rotinas Rotina f Rotina g(w) g (k) Passagem
Leia maisPonteiros e Tabelas. AED 2003/2004 p.1/37
AED 2003/2004 p.1/37 Ponteiros e Tabelas Endereços e ponteiros Ponteiros e argumentos de funções Ponteiros e tabelas Aritmética de endereços Ponteiros para caracteres Tabelas de ponteiros e ponteiros para
Leia maisControlo de Execução. K&R: Capitulo 3
Controlo de Execução K&R: Capitulo 3 IAED, 2009/2010 Controlo de Execução Instruções e Blocos if else-if switch Ciclos: Instruçõeswhile e for Instruçãodo-while break e continue goto e labels 2 IAED, 2009/2010
Leia maisLista: conceito, representação e algoritmos
Lista: conceito, representação e algoritmos SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Problema Imaginem a situação da automação de uma biblioteca Todos os livros devem ser cadastrados
Leia maisApontadores/ponteiros
Apontadores/ponteiros 1 Apontadores/ponteiros 1. Um ponteiro pode ser manipulado como sendo um vetor. #include int v[5] = { 10, 20, 30, 40, 50 ; int p, i; p = v; for (i = 1; i < 5; i++) printf
Leia maisProgramação de Computadores II. Cap. 7 Cadeias de Caracteres
Programação de Computadores II Cap. 7 Cadeias de Caracteres Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais
Leia maisEstruturas de dados compostas
1 Estruturas de dados compostas Vimos estruturas lineares simples : Vetores, listas ligadas, strings Consideramos agora estruturas compostas : Vetores de vetores (em particular, matrizes), vetores de listas
Leia maisFundamentos de Programação 1
Fundamentos de Programação 1 Linguagem C Arquivos Seqüências ou de Texto. Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO 1 Arquivo de Escrita 1 fopen ( nome.txt", "w" ); fputc ( caracter, arquivo); 2 #include
Leia maisMé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
Leia maisListas Lineares Ordenadas
Listas Lineares Ordenadas Algoritmos e Estruturas de Dados I Nesta apresentação será apresentado o ADT lista linear ordenada Uma lista linear ordenada, ou simplesmente lista ordenada há uma ordem entre
Leia maisEstruturas Compostas Parte II
Estruturas Compostas Parte II Filas e Pilhas Leonardo Tórtoro Pereira Slides fortemente baseados no material do professor Ricardo Farias: http://www.cos.ufrj.br/~rfarias/cos121/ Pilhas Pilhas Também conhecida
Leia maisLinguagens de Programação. Rotinas, Modos e Tipos de Passagem de Parâmetros. Carlos Bazilio
Linguagens de Programação Rotinas, Modos e Tipos de Passagem de Parâmetros Carlos Bazilio bazilio@ic.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Passagem de Parâmetros Os parâmetros são um canal de
Leia maisIntrodução à Programação
Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 13 Estruturas Tipo complexo de dados que agrupa dados de tipos diferentes (simples ou complexos) Adequados para manipular diversas
Leia maisEXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Complexidade dos sistemas de software Estrutura Decomposição Abstração Hierarquia Projeto de sistemas complexos
Leia maisProgramaçã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 maisInstituto Superior Técnico Algoritmos e Estruturas de Dados
Instituto Superior Técnico Algoritmos e Estruturas de Dados Ano Lectivo de 2005/2006 2 o Semestre 1 o Teste A - 8 de Abril de 2006 Duração: 2h - O teste é sem consulta. - Para cada questão com escolha
Leia maisEstruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 4 Funções 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)
Leia maisAlgoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin (daniel.martin@ufabc.edu.br) Aula 8 Aplicação de Fila Calcular a distância entre pessoas no Facebook Aplicação de Fila Calcular a distância entre
Leia maisAlgoritmos 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
Leia maisListas 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 maisEstruturas. struct são coleções de dados heterogêneos agrupados em uma mesma estrutura de dados. Ex: armazenar as coordenadas (x,y) de um ponto:
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Estruturas Profa Rosana Braga 1 Estruturas struct são coleções de dados heterogêneos agrupados em uma mesma estrutura
Leia maisInstituto 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 2004/2005 2 o Semestre 1 o Teste A - 30 de Abril de 2005 Duração: 2h - O teste é sem consulta. - Para cada questão
Leia maisPilhas 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 maisAlgoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin (daniel.martin@ufabc.edu.br) Aula 6 Modularização Método que consiste em organizar programas grandes em pequenas partes (módulos) Cada módulo tem
Leia maisEstruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
Leia maisINSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2002/2003 2 o Semestre 2 o Teste A 9 de Junho de 2003 Duração: 2h - O teste é sem consulta. - Para cada questão com escolha múltipla
Leia maisProgramação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos
Leia maisListas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node {
Listas (cont.) K&R: Capitulo 6 Lista Simplesmente Ligada Conjunto de nós head NULL Cada nó contém Informação útil Ponteiro para o próimo nó typedef struct node Item item; struct node *net; *link; Item
Leia maisComputação 2. Aula 7. Profª. Fabiany Ponteiros
Computação 2 Aula 7 Ponteiros Profª. Fabiany fabianyl@utfpr.edu.br O que são Ponteiros? Um ponteiro é uma variável que contém um endereço de memória. Este endereço é normalmente a posição de uma outra
Leia maisFUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara
Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos
Leia maisEstruturas 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 maisvoid push(int i){ if (num<max) vet[num++]=i; else { printf(">>> Erro: overflow na pilha!!!\n"); printf("%d nao foi empilhado!!!
Estruturas de Dados Lista 2: soluções J. L. Rangel 1. Suponha que uma pilha é representada através de um vetor vet e de um inteiro num. As declarações podem ser #define MAX 100 int vet[max], num; Escreva
Leia maisCarlos 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 maisProgramaçã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
Leia maisREVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
REVISÃO DE PILHAS E FILAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos PILHAS E FILAS São tipos especiais de listas com disciplina restrita de acesso Acesso Consulta Inserção Remoção Disciplina
Leia maisProgramaçã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
Leia maisEXERCÍCIO DE SONDAGEM SEMESTRE DATAS: 21/06/2016 (TURMAS 01 E 02) Matrícula Nome Nota
Professor de INTRODUÇÃO À PROGRAMAÇÃO Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.:
Leia maisMé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 maisMódulo 18 - Tabelas de Dispersão. Referências
Estruturas de Dados Módulo 18 - Tabelas de Dispersão 7/6/2006 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
Leia maisEPs 1 e 2. EP2: veja. EP1: veja
1 EPs 1 e 2 EP2: veja http://www.ime.usp.br/~fabricio/ep2/ep2.pdf EP1: veja http://www.ime.usp.br/~yoshi/2006ii/mac122a/eps/ep1/wc.pdf http://www.ime.usp.br/~pf/cweb/ http://www.ime.usp.br/~pf/algoritmos/apend/util.html
Leia maisO 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
Leia maisINF1007: Programação 2. 4 Tipos Estruturados. 10/23/09 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 4 Tipos Estruturados 10/23/09 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Tipo estrutura Definição de novos tipos Aninhamento de estruturas Vetores de estruturas Vetores
Leia maisLinguagem C (repetição)
Linguagem C (repetição) André Tavares da Silva andre.silva@udesc.br Exercício Escrever um programa que conte (mostre na tela) os números de 1 a 100. Comandos aprendidos até o momento: printf, scanf, getchar,
Leia maisCaracteres e Cadeias de Caracteres
Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 06 Tipos Estruturados Edirlei Soares de Lima Dados Compostos Até agora somente utilizamos tipos de dados simples: char, int, float, double. Muitas vezes
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisIntrodução à Programação em C (II)
Introdução à Programação em C (II) Resumo Streams de Texto Leitura e escrita de caracteres Caracteres como números inteiros Exemplos Cópia de Ficheiros Contagem de Caracteres Contagem de Linhas Contagem
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Revisão Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus
Leia maisAlgoritmos e Estruturas de Dados: Tabela de Dispersão com Encadeamento
Algoritmos e Estruturas de Dados: Tabela de Dispersão com Encadeamento Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC romulo@das.ufsc.br http://www.das.ufsc.br/~romulo Maio/011
Leia maisPonteiros. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista
Ponteiros 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 Ciências
Leia maisProgramação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 09 Estruturas
Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre T. 09 Estruturas 1 Sumário: 2 Taxonomia de tipos de dados Tipos de Dados void Tipos Simples Tipos Compostos Tipos Numéricos
Leia maisJ. L. Rangel 1. provar que uma árvore binária de altura h tem, no mínimo, h+1 nós, e, no máximo, 2 h+1 1.
Estruturas de Dados Algumas Respostas da Lista 3. J. L. Rangel 1. provar que uma árvore binária de altura h tem, no mínimo, h+1 nós, e, no máximo, 2 h+1 1. (número mínimo) Se a árvore tem altura h, deve
Leia maisIntrodução à Programação em C Input / Output
Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then
Leia maisPonteiros 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 maisIntrodução a Programação. Ponteiros e Strings, Alocação Dinâmica
Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros
Leia maisListas: a última das 3 estruturas lineares (Pilhas, Filas e Listas)... árvores e grafos são não lineares!
Listas: a última das 3 estruturas lineares (Pilhas, Filas e Listas)... árvores e grafos são não lineares! 28/9/, 30/9/ e 5/10/2010 Representação/Implementação: Encadeada dinâmica Exercícios Lista Simplesmente
Leia maisProgramação Estruturada
Programação Estruturada Ponteiros Parte 1 Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Ponteiros Ponteiro Ponteiros
Leia maisProgramação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2
Programação de Computadores II Cap. 7 Cadeias de Caracteres 1/2 Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos
Leia mais