Aula 07. Estruturas de dados Lista, Pilha, Fila Pair, Map, Set e Bitset
|
|
- Maria Fernanda Almada de Miranda
- 5 Há anos
- Visualizações:
Transcrição
1 Logo
2 Aula 07 Estruturas de dados Lista, Pilha, Fila Pair, Map, Set e Bitset 2
3 Estrutura de Dados Estrutura de dados já foi vista em vetores, que foi uma maneira de manipular várias informações (variáveis ou estruturas) de uma vez só, pois poderíamos declarar vários desses elementos. Quando isso era feito, esses dados estavam em uma sequência rigidamente definida na memória, bem como o número de elementos eram constantes. Esses dois detalhes, na verdade, possuem algumas limitações. 3
4 Estrutura de Dados Viu-se anteriormente Alocação dinâmica de memória, onde deixamos de estar presos ao conceito de "número de elementos fixos", pois lá alocávamos e realocávamos o tanto de espaços de memória. Aplica-se os conceitos anterior nos tipos de estrutura de dados: Listas, Filas, Pilhas, Árvores e Grafo. 4
5 Estrutura de Dados Listas, filas e pilhas são estrutura de dados lineares. Árvores e Grafo são estrutura de dados não lineares. 5
6 Listas Encadeadas Esqueça a programação. Use seu bom senso e responda: o que é uma lista? Vamos supor que você fez uma lista de compras. Ou seja, tem um pedaço de papel com diversos elementos, em uma dada ordem. Provavelmente essa ordem é a que você vai comprar, do primeiro para o último. Geralmente elas tem uma sequência lógica, como elementos do mesmo setores estarem adjacentes. 6
7 Listas Encadeadas A analogia é parecida para uma lista em C/C++. Em programação, lista é uma série de elementos ligados. O primeiro é ligado no segundo, que é ligado no terceiro etc. Iremos aprender como colocar elementos, tirar, mudar de posição. Como elas estão ligadas, basta que tenhamos o endereço (ponteiro) para o primeiro elemento da lista. Ou seja, iremos estudar as chamadas listas encadeadas, que são itens 'alinhados' numa fila. 7
8 Listas Encadeadas A lista encadeada terá a seguinte estrutura: struct REGISTRO { int data; struct REGISTRO *next; ; 8
9 Listas Encadeadas É conveniente tratar as células como um novo tipo-de-dados e atribuir um nome a esse novo tipo: typedef struct REGISTRO celula; Uma célula c e um ponteiro p para uma célula podem ser declarados assim: celula c, *p; Se c é uma célula então c.data é o conteúdo da célula e c.next é o endereço da próxima célula. Se p é o endereço de uma célula, então p->data é o conteúdo da célula e p->next é o endereço da próxima célula. Se p é o endereço da última célula da lista então p->next vale NULL. 9
10 Listas Encadeadas A lista encadeadas precisam das funções: Inicia Insere Remove Imprimi Libera 10
11 Inicia A lista encadeada tem que ser inicializada sempre que for começar. celula* inicia (void) { return NULL; 11
12 Insere Considere o problema de inserir uma nova célula em uma lista encadeada. Suponha que quero inserir a nova célula entre a posição apontada por p e a posição seguinte. (É claro que isso só faz sentido se p é diferente de NULL). celula* insere (int x, celula *p) { celula *nova; nova = (celula *) malloc(sizeof(celula)); nova->data = x; nova->next = p; return nova; 12
13 Remove Considere o problema de remover uma certa célula de uma lista encadeada. Como especificar a célula em questão? A ideia mais óbvia é apontar para a célula que quer remover. 13
14 Remove celula* remove (int y, celula *p) { celula *a, *b; a = NULL; b = p; while (b!= NULL && b->data!= y) { a = b; b = b->next; if (b == NULL) { return p; if (a == NULL){ p = b->next; else { a->next = b->next; free (b); return p; 14
15 Imprimi Para imprimir o conteúdo de uma lista encadeada, faça: void imprima (celula *p) { celula *I; for (I = p; I!= NULL; I = I->next) { printf ("%d ", I->data); printf("\n"); 15
16 Libera Libera os valores da lista encadeadas. void libera(celula *p) { celula *lixo, *aux; lixo = p; while(lixo!= NULL) { aux = lixo->next; free(lixo); lixo = aux; 16
17 Exemplo O professor tem uma lista de itens a colocar e retirar de uma lista, para isso ele vai colocar I e um número inteiro e colocar R e um número a ser retirado. E para mostrar os valores que tem na lista ele vai colocar M. Você tem como fazer um programa que resolva esse problema do professor. 17
18 Programa #include <bits/stdc++.h> using namespace std; struct REGISTRO { int data; struct REGISTRO *next; ; typedef struct REGISTRO celula; celula* inicia (void); celula* insere (int x, celula *p); void imprima (celula *p); celula* remove (int y, celula *p); void libera(celula *p); 18
19 Programa celula* inicia (void) { return NULL; celula* insere (int x, celula *p) { celula *nova; nova = (celula *) malloc(sizeof(celula)); nova->data = x; nova->next = p; return nova; 19
20 Programa void imprima (celula *p) { celula *I; for (I = p; I!= NULL; I = I->next) { printf ("%d ", I->data); printf("\n"); celula* remove (int y, celula *p) { celula *a, *b; a = NULL; b = p; 20
21 Programa while (b!= NULL && b->data!= y) { a = b; b = b->next; if (b == NULL) { return p; if (a == NULL) { p = b->next; else { a->next = b->next; 21
22 Programa free (b); return p; void libera(celula *p) { celula *lixo, *aux; lixo = p; while(lixo!= NULL) { aux = lixo->next; free(lixo); lixo = aux; 22
23 Programa int main() { int n; char op; celula *p; freopen("entrada.txt", "r", stdin); p = inicia(); 23
24 Programa while (scanf(" %c", &op)!= EOF) { switch (op) { case 'I': scanf("%d", &n); p = insere(n, p); break; case 'R': scanf("%d", &n); p = remove(n, p); break; case 'M': imprima(p); 24
25 Programa libera(p); return 0; 25
26 Entrada do programa Entrada: I 10 I 20 I 30 M R 20 M I 40 I 50 R 10 R 30 M 26
27 Saída do programa Saída:
28 Listas Uma vez entendidas as listas encadeadas básicas, você pode inventar muitos outros tipos de listas encadeadas. Por exemplo, você pode construir uma lista encadeada circular, em que a última célula aponta para a primeira. O endereço de uma tal lista é o endereço de uma de suas células (a última, por exemplo). Você pode também ter uma lista duplamente encadeada: cada célula contém o endereço da célula anterior e o endereço da célula seguinte. Mas pode-se usar o vetor estático ou a STL com a vector para produzir uma lista encadeada. 28
29 FILA Uma fila é uma estrutura de dados dinâmica que admite remoção de elementos e inserção de novos objetos. Mais especificamente, uma fila (= queue) é uma estrutura sujeita à seguinte regra de operação: sempre que houver uma remoção, o elemento removido é o que está na estrutura há mais tempo. Em outras palavras, o primeiro objeto inserido na fila é também o primeiro a ser removido. Essa política é conhecida pela sigla FIFO (= First-In- First-Out). 29
30 FILA As funções suportadas pela fila da STL são: empty () - Retorna se a fila está vazia; size () - Retorna o tamanho da fila; front () - Retorna uma referência ao primeiro elemento da fila; back () - Retorna uma referência ao último elemento da fila; push (n) - Adiciona o elemento "n" no final da fila; pop () - Exclui o primeiro elemento da fila. 30
31 Programa #include <bits/stdc++.h> using namespace std; void imprima(queue <int> F); void imprima(queue <int> F) { queue <int> fila = F; while (!fila.empty()) { printf("%d ", fila.front()); fila.pop(); printf("\n"); 31
32 Programa int main() { queue <int> Fila; int n; char op; freopen("entrada.txt", "r", stdin); 32
33 Programa while (scanf(" %c", &op)!= EOF) { switch (op) { case 'I': scanf("%d", &n); Fila.push(n); break; case 'R': Fila.pop(); break; case 'M': imprima(fila); return 0; 33
34 Entrada do programa Entrada: I 10 I 20 I 30 M R M I 40 I 50 R R M 34
35 Saída do programa Saída:
36 Pilha Uma pilha é uma estrutura de dados que admite remoção de elementos e inserção de novos objetos. Mais especificamente, uma pilha (= stack) é uma estrutura sujeita à seguinte regra de operação: sempre que houver uma remoção, o elemento removido é o que está na estrutura há menos tempo. Em outras palavras, o primeiro objeto a ser inserido na pilha é o último a ser removido. Essa política é conhecida pela sigla LIFO (= Last-In- First-Out). 36
37 PILHA As funções associadas à pilha são: empty () - Retorna se a pilha está vazia; size () - Retorna o tamanho da pilha; top () - Retorna uma referência ao elemento mais alto da pilha; push (n) - Adiciona o elemento "n" no topo da pilha; pop () - Apaga o elemento mais alto da pilha. 37
38 Programa #include <bits/stdc++.h> using namespace std; void imprima(stack <int> P); void imprima(stack <int> P) { stack <int> pilha = P; while (!pilha.empty()) { printf("%d ", pilha.top()); pilha.pop(); printf("\n"); 38
39 Programa int main() { stack <int> P; int n; char op; freopen("entrada.txt", "r", stdin); 39
40 Programa while (scanf(" %c", &op)!= EOF) { switch (op) { case 'I': scanf("%d", &n); P.push(n); break; case 'R': P.pop(); break; case 'M': imprima(p); return 0; 40
41 Entrada do programa Entrada: I 10 I 20 I 30 M R M I 40 I 50 R R M 41
42 Saída do programa Saída:
43 List Listas são contêineres de sequência que permitem a alocação de memória não contígua. Em comparação com o vetor, a lista tem um percurso lento, mas assim que uma posição é encontrada, a inserção e a exclusão são rápidas. Normalmente, quando dizemos uma lista, falamos sobre a lista duplamente vinculada. Para implementar uma lista ligada, usamos a lista de encaminhamento. 43
44 LIST Funções usadas com a lista: front () - Retorna o valor do primeiro elemento da lista; back () - Retorna o valor do último elemento da lista; push_front (n) - Adiciona um novo elemento "n" no início da lista; push_back (n) - Adiciona um novo elemento "n" no final da lista; pop_front () - Remove o primeiro elemento da lista e reduz o tamanho da lista em 1; pop_back () - Remove o último elemento da lista e reduz o tamanho da lista em 1; 44
45 LIST Funções usadas com a lista: begin () - Retorna um iterador apontando para o primeiro elemento da lista; end () - Retorna um iterador apontando para o último elemento teórico que segue o último elemento; empty () - Retorna se a lista está vazia (1) ou não (0); insert () - Insere novos elementos na lista antes do elemento em uma posição especificada; erase () - Remove um único elemento ou um intervalo de elementos da lista; 45
46 LIST Funções usadas com a lista: assign () - Atribui novos elementos para lista, substituindo os elementos atuais e redimensiona a lista; remove () - Remove todos os elementos da lista, que são iguais ao dado elemento; reverse () - Inverte a lista; size () - Retorna o número de elementos na lista; sort () - Classifica a lista em ordem crescente. 46
47 Programa #include <bits/stdc++.h> using namespace std; void imprima(list <int> L); void imprima(list <int> L) { list <int> :: iterator it; for(it = L.begin(); it!= L.end(); ++it) { printf("%d ", *it); printf("\n"); 47
48 Programa int main() { list <int> L; int n, m; char op, ch; freopen("entrada.txt", "r", stdin); while (scanf(" %c", &op)!= EOF) { switch (op) { case 'I': scanf("%d %d", &n, &m); L.push_front(n); L.push_back(m); break; 48
49 Programa case 'R': scanf(" %c", &ch); if (ch == 'F') { L.pop_front(); else { L.pop_back(); break; case 'M': imprima(l); return 0; 49
50 Entrada do programa Entrada: I I I M R F M I I R B R B M 50
51 Saída do programa Saída:
52 Pair O contêiner de pair é um contêiner simples definido no cabeçalho <utility> que consiste em dois elementos ou objetos de dados. O primeiro elemento é referenciado como "first" e o segundo como "second" e o pedido é fixo (first, second). Pair é usado para combinar dois valores que podem ser diferentes no tipo. Par fornece uma maneira de armazenar dois objetos heterogêneos como uma única unidade. 52
53 Pair Pair pode ser atribuído, copiado e comparado. O vetor de objetos alocados em um map ou hash_map é do tipo "pair" por padrão, na qual todos os elementos "first" são chaves exclusivas associadas a seus objetos de valor "second". Para acessar os elementos, usamos o nome da variável seguido pelo operador de ponto seguido pela palavra-chave first ou second. sorting-vector-of-pairs-in-c-set-1-sort-by-first-and-second/ 53
54 Programa #include <bits/stdc++.h> using namespace std; int main() { vector <pair <int, char> > P; int n, i, x; char op; freopen("entrada.txt", "r", stdin); while (scanf("%d %c", &x, &op)!= EOF) { P.push_back(make_pair(x, op)); 54
55 Programa n = P.size(); for (i = 0; i < n; i++) { cout << P[i].second << " "; cout << P[i].first << endl; 55
56 Programa sort(p.begin(), P.end()); printf("ordenado pelo primeiro:\n"); for (i = 0; i < n; i++) { cout << P[i].second << " "; cout << P[i].first << endl; return 0; 56
57 Entrada do programa Entrada: 10 A 40 B 30 C 70 D 50 A 20 B 57
58 Saída do programa Saída: A 10 B 40 C 30 D 70 A 50 B 20 Ordenado pelo primeiro: A 10 B 20 C 30 B 40 A 50 D 70 58
59 Map Maps são contêineres associativos que armazenam elementos de forma mapeada. Cada elemento possui um valor de chave e um valor mapeado. Nenhum valor mapeado pode ter os mesmos valores de chave. Funções associadas ao map: begin () - Retorna um iterador para o primeiro elemento no map; end () - Retorna um iterador ao elemento teórico que segue o último elemento no map; size () - Retorna o número de elementos no map; map-associative-containers-the-c-standard-template-library-stl/ 59
60 Map Funções associadas ao map: max_size () - Retorna o número máximo de elementos que o map pode conter; empty () - Retorna se o map está vazio pair insert (keyvalue, mapvalue) - Adiciona um novo elemento ao map; erase (iterador position) - Remove o elemento na posição apontada pelo iterador; erase (const n) - Remove o valor da chave "n" do map; clear () - Remove todos os elementos do map; 60
61 Map Funções associadas ao map: key_comp () / value_comp () - Retorna o objeto que determina como os elementos no map são ordenados ('<' por padrão) find (const n) - Retorna um iterador ao elemento com o valor da chave "n" no map, se encontrado, senão retorna o iterador ao final count (const n) - count (const n) - Retorna o número de correspondências para o elemento com o valor da chave "n" no map; 61
62 Map Funções associadas ao map: lower_bound (const n) - Retorna um iterador ao primeiro elemento que é equivalente ao valor mapeado com o valor da chave "n" ou definitivamente não irá antes do elemento com o valor da chave "n" no map; upper_bound (const n) - upper_bound (const n) - Retorna um iterador ao primeiro elemento que é equivalente ao valor mapeado com o valor da chave "n" ou, definitivamente, irá após o elemento com o valor da chave "n" no map. 62
63 Programa #include <bits/stdc++.h> using namespace std; int main() { freopen("entrada.txt", "r", stdin); map <int, int> mapa; int i, n, x, y; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d %d", &x, &y); mapa.insert(pair <int, int> (x, y)); 63
64 Programa map <int, int> :: iterator itr; cout << "\to mapa eh:\n"; cout << "\tchave\telemento\n"; for (itr = mapa.begin(); itr!= mapa.end(); ++itr) { cout << '\t' << itr->first << '\t' << itr->second << '\n'; return 0; 64
65 Entrada do programa Entrada:
66 Saída do programa Saída: O mapa eh: Chave Elemento
67 URI 1281 #include <bits/stdc++.h> using namespace std; int main() { freopen("entrada.txt", "r", stdin); map <string, double> tab; double p, total; string prod; int c, n; scanf("%d", &c); Agradecimento ao amigo Edgar Almeira 67
68 URI 1281 while(c--){ total=0; scanf("%d", &n); while(n--){ cin >> prod; scanf("%lf", &p); tab[prod] = p; Agradecimento ao amigo Edgar Almeira 68
69 URI 1281 scanf("%d", &n); while(n--){ cin >> prod; scanf("%lf", &p); total += (tab[prod] * p); printf("r$ %.2lf\n", total); return 0; Agradecimento ao amigo Edgar Almeira 69
70 Entrada do programa Entrada: 2 4 mamao 2.19 cebola 3.10 tomate 2.80 uva mamao 2 tomate 1 uva 3 Entrada: 5 morango 6.70 repolho 1.12 brocolis 1.71 tomate 2.80 cebola brocolis 2 tomate 1 cebola 1 morango 1 Agradecimento ao amigo Edgar Almeira 70
71 Saída do programa Saída: R$ R$ Agradecimento ao amigo Edgar Almeira 71
72 Set Set são um tipo de contêineres associativos em que cada elemento deve ser único, porque o valor do elemento o identifica. O valor do elemento não pode ser modificado depois de adicionado ao conjunto, embora seja possível remover e adicionar o valor modificado desse elemento. 72
73 Set Funções associadas ao Set: begin () - Retorna um iterador para o primeiro elemento no conjunto; end () - Retorna um iterador ao elemento teórico que segue o último elemento no conjunto; size () - Retorna o número de elementos no conjunto; max_size () - max_size () - Retorna o número máximo de elementos que o conjunto pode conter; 73
74 Set Funções associadas ao Set: empty () - Retorna se o conjunto está vazio; par <iterator, bool> insert (const n) - Adiciona um novo elemento "n" ao conjunto; inserção do iterador (iterador position, const n) - Adiciona um novo elemento 'n' na posição apontada pelo iterador; erase (iterador position) - Remove o elemento na posição apontada pelo iterador; erase (const n) - Remove o valor "n" do conjunto; clear () - clear () - Remove todos os elementos do conjunto; 74
75 Set Funções associadas ao Set: ekey_comp () / value_comp () - Retorna o objeto que determina como os elementos no conjunto são ordenados ( < por padrão); find (const n) - Retorna um iterador ao elemento "n" no conjunto, se encontrado, senão retorna o iterador ao final; count (const n) - count (const n) - Retorna 1 ou 0 com base no elemento 'n' presente no set ou não; 75
76 Set Funções associadas ao Set: lower_bound (const n) - Retorna um iterador para o primeiro elemento que é equivalente a 'n' ou definitivamente não irá antes do elemento 'n' no conjunto; upper_bound (const n) - upper_bound (const n) - Retorna um iterador ao primeiro elemento que é equivalente a 'n' ou definitivamente irá após o elemento 'n' no conjunto. 76
77 Programa #include <bits/stdc++.h> using namespace std; int main() { freopen("entrada.txt", "r", stdin); set <int> S; set <int> :: iterator it; int i, n, x; scanf("%d", &n); 77
78 Programa for (i = 0; i < n; i++) { scanf("%d", &x); S.insert(x); printf("set: "); for (it = S.begin(); it!= S.end(); it++) { cout << *it << " "; cout << endl; return 0; 78
79 Entrada do programa Entrada:
80 Saída do programa Saída: Set:
81 Bitset Bitset é um vetor de bool mas cada valor booleano não é armazenado separadamente, em vez disso o bitset otimiza o espaço de modo que cada bool tome apenas 1 bit de espaço, portanto o espaço ocupado pelo bitset bs é menor que o bool bs [N] e vetor bs (N). No entanto, uma limitação do bitset é, N deve ser conhecido em tempo de compilação, ou seja, uma constante (esta limitação não está lá com vector e array dinâmica) 81
82 Bitset Como o bitset armazena as mesmas informações de maneira comprimida, a operação no bitset é mais rápida que a do array e vetor. Podemos acessar cada bit de bitset individualmente com a ajuda do operador de indexação de array[] que é bs [3] mostra bit no índice 3 do bitset bs como um array simples. Lembre-se que o bitset inicia sua indexação para trás, que é para 10110, 0 para os índices 0 e 3 e 1 para o primeiro e segundo índices. 82
83 Bitset Podemos construir um bitset usando o número inteiro, bem como a string binária via construtores, que é mostrada no código abaixo. O tamanho do bitset é fixo em tempo de compilação ou seja, não pode ser alterado em tempo de execução. A função principal definida para a classe de bitset é operator [], count, size, set, reset e muitos mais. 83
84 Programa #include <bits/stdc++.h> using namespace std; int main() { freopen("entrada.txt", "r", stdin); int i, n, x; bitset <16> B; cout << B << endl; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &x); cout << x << " - " << bitset<8>(x) << endl; return 0; 84
85 Entrada do programa Entrada:
86 Saída do programa Saída:
87 Programa #include <bits/stdc++.h> using namespace std; int main() { bitset<4> bset1(9); bitset<4> bset2(3); cout << bset1 << endl; cout << bset2 << endl; // operador de comparação cout << (bset1 == bset2) << endl; cout << (bset1!= bset2) << endl; // operação bitwise e atribuição cout << (bset1 ^= bset2) << endl; cout << (bset1 &= bset2) << endl; cout << (bset1 = bset2) << endl; 87
88 Programa // deslocando para a esquerda e para a direita cout << (bset1 <<= 2) << endl; cout << (bset1 >>= 1) << endl; // operador não cout << (~bset2) << endl; // operador bit a bit cout << (bset1 & bset2) << endl; cout << (bset1 bset2) << endl; cout << (bset1 ^ bset2) << endl; return 0; 88
89 Saída do programa Saída:
90 Exercícios URI 1110, Faça os exercícios de Estruturas do URI. 90
PCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 27 de setembro de 2018 Marco Antonio
Leia maisIV Escola de Inverno Maratona de Programação UNIFEI Intermediário I
IV Escola de Inverno Maratona de Programação UNIFEI 2016 Intermediário I C++ STL - Standard Template Library C++ STL A STL (Standard Template Library) é uma biblioteca de algoritmos e estruturas de dados
Leia maisO container vector funciona como um vetor comum, ou seja, os blocos de objetos estão contíguos, permitindo acesso aleatório.
Capítulo 29 class O container vector vai ser apresentado em detalhes. Os demais containers serão apresentados de uma forma simplificada, pois as suas características são semelhantes a vector.
Leia maisAlgoritmos e Estruturas de Dados 2007/2008
Pilhas e Filas Algoritmos e Estruturas de Dados 007/008 Pilhas Pilha estrutura de dados linear em que a inserção e a remoção de elementos de uma sequência se faz pela mesma extremidade, designada por topo
Leia maisRecursividade UFOP 1/48
BCC 201 - Introdução à Programação I Recursividade Guillermo Cámara-Chávez UFOP 1/48 Introdução I Recursividade: é um método de programação no qual uma função pode chamar a si mesma Muitas estruturas têm
Leia maisLaboratório de programação II
Laboratório de programação II Standard Template Library (STL) Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Standard Template Library Biblioteca padronizada de funções Oferece um
Leia maisProf. Marco Antonio M. Carvalho
Prof. Marco Antonio M. Carvalho Lembretes Lista de discussão Endereço: programaacao@googlegroups.com Solicitem acesso: http://groups.google.com/group/programaacao Página com material dos treinamentos http://www.decom.ufop.br/marco/extensao/obi/
Leia maisEstrutura de Dados: Aula 3 - Linguagem C
Estrutura de Dados: Aula 3 - Linguagem C Uso de Memória Alocação de memória Estática Ocorre em tempo de compilação no momento em que se define uma variável ou estrutura é necessário que se definam seu
Leia maisPonteiros. Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço.
Logo Aula 06 Ponteiros 2 Ponteiros Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço. Um exemplo clássico disto
Leia maisS U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas
ESTRUTURA DE DADOS DEBORAH FERREIRA S U M Á R I O Definição de Estrutura de Dados 1 Vetores 2 Listas Ligadas 4 Pilhas 6 Filas 8 D E F I N I Ç Ã O D E E S T R U T U R A D E D A D O S Estruturas de dados
Leia maisCIC 110 Análise e Projeto de Algoritmos I
CIC 110 Análise e Projeto de Algoritmos I Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá Data structures AULA 04 Estrutura de Dados Uma estrutura de dados é uma maneira de armazenar
Leia maisFilas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing,
Filas Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing, pelo uso da CPU Algoritmos e Estruturas de Dados I José
Leia maisEstruturas de Dados Filas
Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados
Leia maisINF Estruturas de dados avançadas. Standard Template Library
INF1010 - Estruturas de dados avançadas Introdução a C++ Standard Template Library PUC-Rio 2 de maio de 2018 Standard Template Library (STL) Biblioteca de classes e algoritmos parte da biblioteca padrão
Leia maisStandard Template Library (STL)
Standard Template Library (STL) BCC 221 - Programação Orientada a Objectos(POO) Guillermo Cámara-Chávez Departamento de Computação - UFOP Introdução Considerando a utilidade do reuso de software e também
Leia maisEstruturas de Dados - STL
Estruturas de Dados - STL Baseada na apresentação do prof. João Bittencourt Leandro Tonietto ltonietto@unisinos.br Algoritmos e Estruturas de Dados em C++ Unisinos http://www.inf.unisinos.br/~ltonietto/jed/aed/estruturadados-stl.pdf
Leia maisPilhas. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP
Pilhas Algoritmos e Estruturas de Dados I Nesta aula veremos o ADT pilha Uma pilha é usada em muitas situações tais como avaliação de expressões aritméticas, chamada e retorno de procedimentos e funções
Leia maisANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa
ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 04 Prof. Thomás da Costa thomascosta@aedu.com O que é: Matrizes São vetores que possuem duas ou mais dimensões para armazenar valores. Uma matriz de duas dimensões,
Leia maisAula 2 Listas Lineares Sequenciais. prof Leticia Winkler
Aula 2 Listas Lineares Sequenciais prof Leticia Winkler 1 Conteúdo Revisão de Vetor Definição Declaração Acesso dos Elementos Inicialização dos Elementos Exemplo Vetor e Função Lista Linear Operações com
Leia maisAula 11 Pilha Dinâmica. prof Leticia Winkler
Aula 11 Pilha Dinâmica prof Leticia Winkler 1 Pilha Dinâmica (Dynamic Stack) Pilha implementada através de uma lista linear encadeada. É uma lista linear encadeada em que as operações de inserção e retirada
Leia maisEstruturas de Dados - Filas
Estruturas de Dados - Filas Leandro Tonietto ltonietto@unisinos.br Algoritmos e Estruturas de Dados em C++ Unisinos http://www.inf.unisinos.br/~ltonietto/jed/aed/filas.pdf Abr-8 Uma fila (queue) é uma
Leia maisAlgoritmos e Estruturas de Dados
Pilhas e Filas Algoritmos e Estruturas de Dados 009/00 Obs: slides marcados com (*) não foram apresentados na aula teórica, mas são parte da bibliografia a estudar! Pilhas Pilha estrutura de dados linear
Leia maisAula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler
Aula 7 e 8 Filas e suas Aplicações Prof. Leticia Winkler 1 Definição de Fila (Queue) São estruturas de dados do tipo FIFO (first-in first-out) - o primeiro elemento a ser inserido, será o primeiro a ser
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 maisEstruturas de Dados Aula 11: TAD Pilha
Estruturas de Dados Aula 11: TAD Pilha Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 10; Estruturas
Leia maisBiblioteca STL aplicada à Maratona de
Biblioteca STL aplicada à Maratona de Programação MEDITEC 5 29 de Maio de 2014 Introdução Estruturas de Dados Pilhas Filas Pares Vectores Listas e Iterators Árvores Balanceadas Strings Mapas Algoritmos
Leia maisTipos de Dados Abstractos Estruturas Lineares Listas
Tipos de Dados Abstractos Estruturas Lineares Listas FEUP - MIEEC Programação 2-2008/2009 Tipo de Dados Abstractos (TDA) TDA conjunto de objectos + conjuntos de operações abstracção matemática (dados são
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 maisLinguagem 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 maisTabelas Hash & Outras Estruturas
Tabelas Hash & Outras Estruturas Prof. MSc. João Ricardo Bittencourt Algoritmos e Estrutura de Dados em C++ Desenvolvimento de Jogos & Entretenimento Digital UNISINOS Sumário 1. Conceito de hashing 2.
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 maisAula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler
Aula 10 Alocação Dinâmica de Memória Listas Encadeadas prof Leticia Winkler 1 Prof. Leticia Winkler 2 Alocação de Memória Reservar na memória (principal), o espaço para guardar a informação através da
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 maisAula 14 Listas Duplamente Encadeadas. prof Leticia Winkler
Aula 14 Listas Duplamente Encadeadas prof Leticia Winkler 1 Lista Duplamente Encadeada É um tipo de lista encadeada que pode ser vazia (NULL) ou que pode ter um ou mais nós, sendo que cada nó possui dois
Leia maisAula 04. Agregados Homogêneos. Agregados Heterogêneos. Matrizes
Logo Aula 04 Agregados Homogêneos Matrizes Agregados Heterogêneos 2 Matriz Da mesma forma que as variáveis indexadas vetoriais, vistas anteriormente, as variáveis indexadas bidimensionais são utilizadas
Leia maisUniversidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Estruturas de Dados
Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Estruturas de Dados Tópicos Especiais em Programação Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com
Leia maisTemplates. Programação de Computadores Estruturas de Dados. Alan de Freitas. Considere o código abaixo que encontra o maior elementos entre 3 ints
Templates Programação de Computadores Estruturas de Dados São comuns situações em que operações muito parecidas podem ser executadas em diferentes tipos de dados Isto é especialmente verdade entre os tipos
Leia maisANHANGUERA 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 maisINF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática
Leia maisAlgoritmos e Estruturas de Dados 2005/2006
Pilhas e Filas Algoritmos e Estruturas de Dados 005/006 Pilhas Pilha estrutura de dados linear em que a inserção e a remoção de elementos de uma sequência se faz pela mesma extremidade, designada por topo
Leia maisCapítulo 8: Abstrações de dados
Capítulo 8: Abstrações de dados Ciência da computação: Uma visão abrangente 11a Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Estruturas de dados básicas Matriz homogênea Matriz
Leia maisLista 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 maisprogramas = estrutura de dados + algoritmos
Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1 1. INTRODUÇÃO O mundo tem mudado rapidamente com ajuda dos computadores. Podemos citar as pesquisas espaciais, o projeto genoma, os simuladores de vôo,
Leia maisEstruturas de Informação. Biblioteca STL. Departamento de Engenharia Informática (DEI/ISEP) Fátima Rodrigues
Estruturas de Informação Biblioteca STL Departamento de Engenharia Informática (DEI/ISEP) Fátima Rodrigues mfc@isep.ipp.pt Programação Genérica Generic programming is a subdiscipline of computer science
Leia maisProf. Marco Antonio M. Carvalho
Prof. Marco Antonio M. Carvalho Lembretes Lista de discussão Endereço: programaacao@googlegroups.com Solicitem acesso: http://groups.google.com/group/programaacao Página com material dos treinamentos http://www.decom.ufop.br/marco/extensao/obi/
Leia maisFilas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010
Filas de prioridade Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010 Qual a Utilidade das Filas de Prioridade? Trabalhos maiores devem ser executados no fim (mesmo que não tenha sido o último
Leia maisProfessora 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 maisEstruturas de Dados Encadeadas
CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos
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 maisPCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 11: Exercício Integrador (parte 2)
PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 11: Exercício Integrador (parte 2) Escola Politécnica da Universidade de São Paulo Agenda 1. Container List 2. Iterators
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Leia maisCCO 016 Fundamentos de Programação
CCO 016 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá Aula 05 Entrada de dados Leia scanf ou cin Entrada de Dados Entrada de dados compreende a operação
Leia maisLista 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 maisIntrodução a Programação. Tipos Abstratos de Dados Implementando Pilha e Fila
Introdução a Programação Tipos Abstratos de Dados Implementando Pilha e Fila Abstração Abstração é o processo ou resultado de generalização por redução do conteúdo da informação de um conceito ou fenômeno
Leia maisPilhas e Filas. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Pilhas e Filas Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Pilhas 2 Pilhas (Stack) Estrutura similar às listas lineares que vimos na última aula [Mais Simples]
Leia maisLinguagem C ponteiros
Linguagem C ponteiros IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C... Vetores Matrizes Funções Recursão Registros Aula
Leia maisSCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)
SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{
Leia maisUniversidade Federal de Mato Grosso do Sul. Standard Template Library (STL)
Universidade Federal de Mato Grosso do Sul Facom - Faculdade de Computação Linguagem de Programação Orientada a Objetos Prof. Me. Liana Duenha Standard Template Library (STL) 1 Introdução A Standard Template
Leia maisFilas. Prof. Túlio Toffolo BCC202 Aula 12 Algoritmos e Estruturas de Dados I
Filas Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 12 Algoritmos e Estruturas de Dados I O que é uma fila? 1 4 2 3 Fila 1 2 3 4 TAD Fila Tipo Abstrato de dados com a seguinte característica:
Leia mais1. 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 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 maisListas 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
Leia maisParte IV. Linguagens de Programação. Relembrando da Última Aula... Contêineres. STL (Standard Template Library) Prof. Miguel Elias Mitre Campista
Linguagens de Programação Parte IV Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Introdução à Programação em (Continuação) Relembrando da Última Aula... Tratamento de exceção Mais exemplos
Leia maisProgramação Orientada a Objetos para Redes de Computadores. STL (Standard Template Library) Library) Contêineres. Contêineres PARTE 2
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação - STL STL (Standard Template Library) Componentes baseados
Leia maisUniversidade Estadual Paulista Júlio de Mesquita Filho UNESP
Introdução à Computação II AULA 16 BCC Noturno - EMA896115B Prof. Rafael Oliveira olivrap@gmail.com Universidade Estadual Paulista Júlio de Mesquita Filho UNESP Rio Claro 2014 (Sem 2) Estruturas de Dados
Leia maisFila. 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações
Fila 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações Fila O que é? Para que serve? Modelos intuitivos de filas Linhas para comprar bilhetes de cinema
Leia maisMódulo 10 Listas Encadeadas
Estruturas de Dados Módulo 10 Listas Encadeadas 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
Leia maisComputadores 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 maisSTL significa Standard Template Library. É uma biblioteca que contém algumas estruturas de dados, como árvore binária e lista encadeada.
STL significa Standard Template Library. É uma biblioteca que contém algumas estruturas de dados, como árvore binária e lista encadeada. Estas estruturas são chamadas de Containers. Elas armazenam coleções
Leia maisFundamentos de Programação
Fundamentos de Programação Linguagem C++: arrays - aula I Bruno Emerson Gurgel Gomes 1 1 Instituto Federal de Educação, Ciência e Tecnologia do RN (IFRN) 2012 Bruno Gomes (IFRN) Fundamentos de Programação
Leia maisLista 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 maisAula 01. Programação Condicional Programação repetitiva
Logo Aula 01 Programação Condicional Programação repetitiva 2 Programação Condicional Uma programação condicional, como o próprio nome já diz, permite que determinadas instruções sejam executadas ou não,
Leia mais1 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
Leia maisEstrutura de dados 1. Ponteiros
Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem
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 maisAula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias
SCC 12 - Introdução à Programação para Engenharias Aula de hoje Introdução Sequências Classes e objetos Listas Listas Operações em listas Pilhas e filas Professor: André C. P. L. F. de Carvalho, ICMC-USP
Leia maisAula 08. Estruturas de dados Árvore e Grafo
Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas
Leia maisEstruturas 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)
Leia maisLinguagens de Programação
Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Tratamento de exceção Mais
Leia maisAula 8- Standard Template Library. Arthur Ribacki Gabriel Portal Leonardo Chatain Luiz Fernando Scheidegger Rosália Schneider
Aula 8- Standard Template Library Arthur Ribacki Gabriel Portal Leonardo Chatain Luiz Fernando Scheidegger Rosália Schneider STL Motivação... int int_array = 5; char **vetor = new char*[int_array]; for(int
Leia maisEstrutura 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 maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisAlgoritmos e Estruturas de Dados 2006/2007
Filas de prioridade Algoritmos e Estruturas de Dados 2006/2007 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento
Leia maisPonteiros e Alocação de Memória
Algoritmos e Estrutura de Dados I Ponteiros e Alocação de Memória Prof. Paulo Henrique Pisani fevereiro/2019 Memória Podemos entender a memória como um grande vetor de bytes devidamente endereçados: 0x1051
Leia maisProf. Marco Antonio M. Carvalho
Prof. Marco Antonio M. Carvalho Lembretes Lista de discussão Endereço: programaacao@googlegroups.com Solicitem acesso: http://groups.google.com/group/programaacao Página com material dos treinamentos http://www.decom.ufop.br/marco/extensao/obi/
Leia mais- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação
Programação 1I Prof. Osório Lista Linear Seqüencial (Alocação Estática) Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação
Leia maisLISTAS 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
Leia maisEstruturas 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 maisCIC 110 Análise e Projeto de Algoritmos I
CIC 110 Análise e Projeto de Algoritmos I Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá sort AULA 02 Ordenação A classificação é um problema de design de algoritmo fundamental.
Leia maisESTRUTURA 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 maisPONTEIROS 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 maisAlgoritmos e Estruturas de Dados II IEC013
Algoritmos e Estruturas de Dados II IEC013 TAD, Pilhas e Filas Prof. César Melo Todos os créditos ao Prof. Leandro Galvão TAD: Definição SE programa = definição de um tipo de dados + operação sobre dados
Leia maisPilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista
Pilha 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 maisIntrodução à Computação
Introdução à Computação Linguagem C Professor: André de Carvalho Aula de hoje Introdução Tipos compostos Tipo enumeração Conclusão Tipos compostos A Linguagem C permite criar tipos de dados definíveis
Leia maisListas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1
Listas Lineares Elerson R. S. Santos elerson@dcc.ufmg.br Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Listas Lineares Uma das formas mais simples
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 mais1 Exercícios com ponteiros
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Oitava Aula Prática - 29 de outubro de 2010 O objetivo desta aula prática é exercitar ponteiros e funções. 1 Exercícios com ponteiros
Leia maisEstrutura de Dados II. Prof. Sérgio Portari
Estrutura de Dados II Prof. Sérgio Portari - 2016 Plano de Ensino EMENTA: Filas, Árvores e suas generalizações: árvores binárias, árvores de busca, árvores balanceadas, árvores B e B+. Aplicações de árvores
Leia maisEdital 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