Computadores Digitais 2. Prof. Rodrigo de Souza Couto
|
|
- Marisa Lemos Barreiro
- 5 Há anos
- Visualizações:
Transcrição
1 Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista
2 Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas Circulares Listas Duplamente Encadeadas Listas de Tipos Estruturados
3 ATENÇÃO Esta apresentação foi baseada nos seguinte trabalhos: Notas de aula do Prof. Marco Casanova da PUC-Rio Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus, 2004
4 Parte 1 Programação (linguagem C) Listas Encadeadas
5 Motivação Vetor estaticamente alocado É necessário especificar um tamanho fixo na escrita do código Posição contígua na memória Acesso aleatório de elementos Isto é, elementos são acessados pelos seus índices, sem precisar percorrer outros elementos vet
6 Motivação Vetor dinamicamente alocado Tamanho do vetor pode ser especificado em tempo de execução Também permite acesso aleatório por ocupar posição contígua na memória vet
7 Motivação Vetor dinamicamente alocado Tamanho do vetor pode ser especificado em tempo de execução Também permite acesso aleatório por ocupar posição contígua na memória vet E se a dimensão do vetor mudar em tempo de execução??? Por exemplo, numa estrutura que armazena funcionários de uma empresa. Funcionários constantemente entram e saem da empresa.
8 Motivação Vetor dinamicamente alocado Pode ser redimensionado com a função realloc Modifica o tamanho do conteúdo previamente alocado Como vetor deve ser contíguo, função pode precisar copiar todo o conteúdo do vetor original para uma nova posição de memória para acomodar a nova alocação vet > 116 a vet > Realocando um vetor de 3 elementos a
9 Motivação Vetor dinamicamente alocado realloc muitas vezes não é recomendada por não ser eficiente Quando o número de elementos muda em tempo de execução, é preferível utilizar estruturas dinâmicas Listas encadeadas, árvores, etc. Neste curso, abordaremos apenas listas encadeadas
10 Listas Encadeadas Cada elemento (também chamado de nó) é uma estrutura listapessoas Um dos itens da estrutura é ponteiro para o próximo elemento da lista Ex: Lista de pessoas Fim da lista é indicado por um ponteiro para Nome1 Nome2 Nome3
11 Listas Encadeadas Adição de um novo elemento listapessoas Aloca-se dinamicamente o novo elemento Alocação da estrutura Ponteiro para um dos elementos (p.ex. o último) aponta para essa estrutura Nome1 Nome2 Nome3 Nome4
12 Listas Encadeadas Diferente dos vetores, essas listas não precisam estar em posições contíguas na memória Acesso não aleatório Elementos devem ser percorridos para encontrar o elemento desejado listapessoas Pessoa2 Nome Nome1 Nome2 Pessoa1 120 Nome listapessoas
13 Listas Encadeadas Declaração de estrutura para lista com uma informações do tipo int typedef struct lista { int info; struct lista* prox; Lista; listainfos Declaração para uma estrutura isolada Info1 Info2
14 Listas Encadeadas Declaração de estrutura para lista com uma informações do tipo int typedef struct lista { int info; struct lista* prox; Lista; listainfos Ponteiro para o próximo elemento da lista Info1 Info2
15 Listas Encadeadas Declaração de estrutura para lista com uma informações do tipo int typedef struct lista { int info; struct lista* prox; Lista; listainfos Estrutura autorreferenciada Info1 Info2
16 Listas Encadeadas Exemplo: Função de criação de uma nova lista Retorna variável do tipo Lista com ponteiro para Lista* _cria(void){ return ; listainfos
17 Listas Encadeadas Exemplo: Inserção de novos elementos Lista* _insere(lista*, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = ; return novo; Info1
18 Listas Encadeadas Exemplo: Inserção de novos elementos Lista* _insere(lista*, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = ; novo return novo; Info2 Info1
19 Listas Encadeadas Exemplo: Inserção de novos elementos Lista* _insere(lista*, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = ; novo return novo; i Info1
20 Listas Encadeadas Exemplo: Inserção de novos elementos Lista* _insere(lista*, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = ; novo return novo; i Info1
21 Listas Encadeadas Exemplo: Inserção de novos elementos Lista* _insere(lista*, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = ; novo return novo; i Endereço indicado pela variável novo representará o novo ponteiro da lista Info1
22 Listas Encadeadas Exemplo: Trecho de código que utiliza as funções anteriores int main(void){ Lista *; = _cria(); = _insere(,23); = _insere(,45);...
23 Lista* _cria(void){ return ; int main(void){ Lista *; = _cria(); = _insere(,23); = _insere(,45);...
24 Lista* _insere(lista*, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = ; return novo; 23 int main(void){ Lista *; = _cria(); = _insere(,23); = _insere(,45);...
25 Lista* _insere(lista*, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = ; return novo; int main(void){ Lista *; = _cria(); = _insere(,23); = _insere(,45);... 23
26 Lista* _insere(lista*, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = ; return novo; 45 int main(void){ Lista *; = _cria(); = _insere(,23); = _insere(,45);... 23
27 Lista* _insere(lista*, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = ; return novo; int main(void){ Lista *; = _cria(); = _insere(,23); = _insere(,45);
28 Listas Encadeadas Função alternativa para inserção de elementos Modifica o próprio ponteiro da lista Lista* _insere(lista**, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = *; * = novo; int main(void){ Lista *; = _cria(); _insere(&,23);...
29 Listas Encadeadas Função alternativa para inserção de elementos Modifica o próprio ponteiro da lista Lista* _insere(lista**, int i){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info = i; novo->prox = *; * = novo; int main(void){ Função recebe um ponteiro para o ponteiro da lista Lista *; = _cria(); _insere(&,23);...
30 Listas Encadeadas Exemplo: Função que imprime todos os valores da lista Variável auxiliar que indica o elemento atual void _imprime(lista* ){ Lista* p; for (p = ; p!= ; p = p->prox) printf( info = %d\n, p->info);
31 Listas Encadeadas Exemplo: Função que imprime todos os valores da lista Variável auxiliar que indica o elemento atual void _imprime(lista* ){ Lista* p; for (p = ; p!= ; p = p->prox) printf( info = %d\n, p->info); p
32 Listas Encadeadas Exemplo: Função que imprime todos os valores da lista void _imprime(lista* ){ Lista* p; for (p = ; p!= ; p = p->prox) printf( info = %d\n, p->info); p
33 Listas Encadeadas Exemplo: Função que imprime todos os valores da lista void _imprime(lista* ){ Lista* p; for (p = ; p!= ; p = p->prox) printf( info = %d\n, p->info); p
34 Listas Encadeadas Exemplo: Função que imprime todos os valores da lista void _imprime(lista* ){ Lista* p; for (p = ; p!= ; p = p->prox) printf( info = %d\n, p->info); p
35 Listas Encadeadas Exemplo: função de busca Como posso retornar um ponteiro para o elemento com valor v? Retorna se elemento não for encontrado Lista* _busca(lista*, int v)
36 void Lista* _busca(lista*, int v){ Lista* p; for (p = ; p!= ; p = p->prox) if (p->info == v) return p; return v= p
37 void Lista* _busca(lista*, int v){ Lista* p; for (p = ; p!= ; p = p->prox) if (p->info == v) return p; return Retorna endereço do elemento, pois encontrou o valor! p
38 Listas Encadeadas Exemplo: Retirada de Elemento da lista Se elemento for o primeiro, libera a memória e atualiza o ponteiro Senão, o elemento anterior deve apontar par o seguinte
39 Lista* _retira(lista*, int v){ Lista* ant = ; Lista* p = ; while (p!= && p->info!= v){ ant = p; p = p->prox; if (p == ) return ; Procura o elemento na lista, guardando o anterior if (ant == ){ = p->prox; else{ 23 ant 45 p 67 ant->prox = p->prox; free(p); return ;
40 Lista* _retira(lista*, int v){ Lista* ant = ; Lista* p = ; while (p!= && p->info!= v){ ant = p; p = p->prox; if (p == ) return ; Procura o elemento na lista, guardando o anterior if (ant == ){ = p->prox; else{ ant->prox = p->prox; ant p free(p); return ;
41 Lista* _retira(lista*, int v){ Lista* ant = ; Lista* p = ; while (p!= && p->info!= v){ ant = p; p = p->prox; if (p == ) return ; if (ant == ){ = p->prox; else{ ant->prox = p->prox; free(p); Se o valor não for encontrado, retorna sem retirada de elementos ant p return ;
42 Lista* _retira(lista*, int v){ Lista* ant = ; Lista* p = ; while (p!= && p->info!= v){ ant = p; p = p->prox; if (p == ) return ; if (ant == ){ = p->prox; else{ ant->prox = p->prox; Se temos ant==, o primeiro elemento foi escolhido para ser retirado. Atualiza-se o ponteiro para a próxima posição p free(p); return ; ant
43 Lista* _retira(lista*, int v){ Lista* ant = ; Lista* p = ; while (p!= && p->info!= v){ ant = p; p = p->prox; if (p == ) return ; if (ant == ){ Memória alocada para o elemento = p->prox; será liberada posteriormente else{ ant->prox = p->prox; p free(p); return ; ant
44 Lista* _retira(lista*, int v){ Lista* ant = ; Lista* p = ; while (p!= && p->info!= v){ ant = p; p = p->prox; if (p == ) return ; if (ant == ){ = p->prox; ant p else{ ant->prox = p->prox; Se quisermos retirar elementos do meio, atualizamos elemento anterior free(p); com o endereço do próximo return ;
45 Lista* _retira(lista*, int v){ Lista* ant = ; Lista* p = ; while (p!= && p->info!= v){ ant = p; p = p->prox; if (p == ) return ; if (ant == ){ = p->prox; ant p else{ ant->prox = p->prox; Memória alocada para o elemento será liberada posteriormente free(p); return ;
46 Listas Encadeadas Liberação de memória após o uso da lista void _libera(lista* ){ Lista* p = ; while (p!= ){ Lista* proximo = p->prox; free(p); p = proximo; Guarda referência para o próximo elemento, antes de liberar o atual
47 Listas Encadeadas Exercício: Fazer uma função que coloque na lista elementos na ordem crescente Item info Considerar que a lista recebida já está ordenada Isto é não são necessários procedimentos de ordenação Lista* _insere_ordenado(lista*, int v) typedef struct lista { int info; struct lista* prox; Lista;
48 Lista* _insereordenado(lista*, int v){ Lista* novo = (Lista*) malloc(sizeof(lista)); Lista* ant = ; Lista* p = ; novo novo->info = v;
49 Lista* _insereordenado(lista*, int v){ Lista* novo = (Lista*) malloc(sizeof(lista)); Lista* ant = ; Lista* p = ; novo novo->info = v; 55 while (p!= && p->info < v){ ant = p; p = p->prox; Varre a lista até achar um elemento com valor igual o maior que v. p apontará para esse elemento. Função também guarda o elemento anterior ant p
50 Lista* _insereordenado(lista*, int v){ Lista* novo = (Lista*) malloc(sizeof(lista)); Lista* ant = ; Lista* p = ; novo->info = v; novo while (p!= && p->info < v){ ant = p; p = p->prox; if (ant == ){ novo->prox = ; = novo; Caso o elemento a ser inserido seja menor que o primeiro da lista p ant
51 Lista* _insereordenado(lista*, int v){ Lista* novo = (Lista*) malloc(sizeof(lista)); Lista* ant = ; Lista* p = ; novo->info = v; novo while (p!= && p->info < v){ ant = p; p = p->prox; if (ant == ){ novo->prox = ; = novo; Caso o elemento a ser inserido seja menor que o primeiro da lista p ant
52 Lista* _insereordenado(lista*, int v){ Lista* novo = (Lista*) malloc(sizeof(lista)); Lista* ant = ; Lista* p = ; novo->info = v; while (p!= && p->info < v){ ant = p; 55 p = p->prox; if (ant == ){ novo->prox = ; = novo; else{ novo->prox = ant->prox; ant->prox = novo; return ; novo ant Caso o elemento a ser inserido esteja no meio da lista p
53 Lista* _insereordenado(lista*, int v){ Lista* novo = (Lista*) malloc(sizeof(lista)); Lista* ant = ; Lista* p = ; novo->info = v; while (p!= && p->info < v){ ant = p; 55 p = p->prox; if (ant == ){ novo->prox = ; = novo; else{ novo->prox = ant->prox; ant->prox = novo; return ; novo ant Caso o elemento a ser inserido esteja no meio da lista p
54 Implementações Recursivas Uma lista pode ser considerada como um elemento seguido de uma sublista lista 23 sublista1
55 Implementações Recursivas Uma lista pode ser considerada como um elemento seguido de uma sublista lista 23 sublista1 sublista1 45 sublista2
56 Implementações Recursivas Uma lista pode ser considerada como um elemento seguido de uma sublista lista 23 sublista1 sublista1 45 sublista2 sublista2 67
57 Implementações Recursivas Uma lista pode ser considerada como um elemento seguido de uma sublista lista sublista sublista2
58 Implementações Recursivas Exemplo: Impressão dos elementos void _imprime_rec(lista* ){ if (!= ){ printf( info = %d\n, ->info); _imprime_rec(->prox); lista sublista sublista2
59 Listas Encadeadas Circulares Último elemento aponta para o primeiro Estrutura do elemento idêntica ao caso das listas simples Funções de percurso da lista devem detectar fim da lista pela volta ao primeiro elemento Nas listas simples, utiliza-se o valor Nome1 Nome2 Nome3
60 Listas Encadeadas Circulares Exemplo: Função para imprimir todos os elementos void Circ_imprime(Lista* ){ Lista* p = ; if (p) do{ printf( info = %d\n, p->info); p = p->prox; while (p!= ) Verifica se a lista não é vazia. Lista vazia é iniciada com, como visto para listas simples
61 Listas Encadeadas Circulares Exemplo: Função para imprimir todos os elementos void Circ_imprime(Lista* ){ Lista* p = ; if (p) do{ printf( info = %d\n, p->info); p = p->prox; while (p!= ) Quando p aponta de novo para o primeiro elemento, a lista chegou ao fim
62 Listas Duplamente Encadeadas Cada elemento tem um ponteiro para o próximo elemento e para o elemento anterior Dado um ponteiro para o último elemento da lista, é possível percorrer na ordem inversa Torna algumas operações mais eficientes, como remoção de elementos Info1 Info2 Info3
63 Listas Duplamente Encadeadas Cada elemento tem um ponteiro para o próximo elemento e para o elemento anterior Dado um ponteiro para o último elemento da lista, é possível percorrer na ordem inversa Torna algumas operações mais eficientes, pois não é necessário ter uma referência para o elemento anterior Info1 Info2 Info3
64 Listas Duplamente Encadeadas Declaração de estrutura para lista com informações do tipo int typedef struct lista2 { int info; struct lista2* ant; struct lista2* prox; Lista2; Declaração para uma estrutura isolada Info1 Info2 Info3
65 Listas Duplamente Encadeadas Exemplo: inserção de novos elementos Lista2* 2_insere(Lista2*, int v){ Lista2* novo = (Lista2*) malloc(sizeof(lista2)); novo->info = v; novo->ant = ; novo->prox = ; if (!= ) ->ant = novo; return novo; 34 23
66 Listas Duplamente Encadeadas Exemplo: inserção de novos elementos Lista2* 2_insere(Lista2*, int v){ Lista2* novo = (Lista2*) malloc(sizeof(lista2)); novo->info = v; novo->ant = ; novo->prox = ; if (!= ) ->ant = novo; return novo; novo
67 Listas Duplamente Encadeadas Exemplo: inserção de novos elementos Lista2* 2_insere(Lista2*, int v){ Lista2* novo = (Lista2*) malloc(sizeof(lista2)); novo->info = v; novo->ant = ; novo->prox = ; if (!= ) ->ant = novo; return novo; novo
68 Listas Duplamente Encadeadas Exemplo: inserção de novos elementos Lista2* 2_insere(Lista2*, int v){ Lista2* novo = (Lista2*) malloc(sizeof(lista2)); novo->info = v; novo->ant = ; novo->prox = ; if (!= ) ->ant = novo; return novo; novo
69 Listas Duplamente Encadeadas Exemplo: Busca de elementos Idêntica à função para listas simples Só é utilizado o ponteiro para ao próximo elemento Lista2* 2_busca(Lista2*, int v){ Lista2* p; for (p = ; p!= ; p = p->prox) if (p->info == v) return p; return
70 Listas Duplamente Encadeadas Exemplo: Remoção de elementos É possível remover elementos apenas sabendo o endereço o elemento a ser retirado Como temos a informação do elemento anterior, não é necessários buscar na lista o elemento anterior ao retirado Primeiro busca-se o elemento e depois realiza-se sua remoção Info1 Info2 Info3
71 Listas Duplamente Encadeadas Exercício: Fazer a função de remoção Lista2* 2_retira(Lista2*, int v) Dica: Utilizar a função de busca Lista2* 2_busca(Lista2*, int v)
72 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); Busca o ponteiro para o elemento da lista a ser retirado Ex: v = p 67 45
73 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); if (p == ) return ; Se elemento não for encontrado, nada se faz
74 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); if (p == ) return ; if ( == p) = p->prox; Testa se elemento a ser retirado é o primeiro elemento p Ex: v =
75 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); if (p == ) return ; if ( == p) = p->prox; Ponteiro inical da lista pula o primeiro elemento Os outros ponteiro serão desfeitos depois p Ex: v =
76 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); if (p == ) return ; if ( == p) = p->prox; else p->ant->prox = p->prox; No caso de ser um elemento do meio Ex: v = p
77 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); if (p == ) return ; Ponteiro prox do elemento anterior if ( == p) receberá o próximo elemento de p = p->prox; else p->ant->prox = p->prox; p
78 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); if (p == ) return ; if ( == p) = p->prox; else p->ant->prox = p->prox; if (p->prox!= ) p->prox->ant = p->ant; Se p não for elemento final, o pointeiro ant do próximo elemento recebe seu elemento anterior p
79 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); if (p == ) return ; if ( == p) = p->prox; else p->ant->prox = p->prox; Isso também é realizado se o primeiro elemento for retirado if (p->prox!= ) p->prox->ant = p->ant; p
80 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); if (p == ) return ; if ( == p) = p->prox; else p->ant->prox = p->prox; Mas nesse caso é um ponteiro para if (p->prox!= ) p->prox->ant = p->ant; p
81 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); if (p == ) return ; p if ( == p) = p->prox; else p->ant->prox = p->prox; if (p->prox!= ) p->prox->ant = p->ant; free(p); return ; Memória é liberada, retirando o elemento
82 Lista2* 2_retira(Lista2*, int v){ Lista2* p = busca(,v); if (p == ) return ; if ( == p) = p->prox; else p->ant->prox = p->prox; if (p->prox!= ) p->prox->ant = p->ant; p free(p); return ; Memória é liberada, retirando o elemento
83 Listas de Tipos Estruturados Listas vista até agora têm conteúdo simples P.ex. Cada nó tem um número inteiro
84 Listas de Tipos Estruturados A informação associada a cada nó pode ser mais complexa, sem alterar o encadeamento dos nós Ex: Matrícula e nome de aluno 2323 Rodrigo 2329 Ana 2321 José
85 Listas de Tipos Estruturados Independente da informação armazenada na lista, a estrutura do nó é sempre composta por Um variável para a informação Um ponteiro para o próximo nó da lista typedef struct aluno { int mat; char nome[81]; Aluno; typedef struct lista { Aluno info; struct lista *prox; Lista;
86 Listas de Tipos Estruturados Inserção de novos elementos #include <string.h> Lista* _insere(lista*, int mat, char* nome){ Lista* novo = (Lista*) malloc(sizeof(lista)); novo->info.mat = mat; strcpy(novo->info.nome,nome); novo->prox = ; return novo;
INF1007: 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 maisInstituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense -
Instituto de C Linguagem C: Listas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Listas Encadeadas Definição Funções básicas Tópicos Principais
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 maisIntrodução a Programação. Listas Encadeadas
Introdução a Programação Listas Encadeadas Tópicos da Aula Hoje aprenderemos que existem, além de vetores, estruturas de dados dinâmicas que podem armazenar coleções de dados Estruturas Dinâmicas e Vetores
Leia 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 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 maisEstruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 12 - Filas 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 maisInstituto de C. Filas. Luis Martí Instituto de Computação Universidade Federal Fluminense -
Instituto de C Filas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução
Leia maisEstruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011
Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011 Fontes Bibliográficas Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
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 Matrizes Alocação estática versus dinâmica Vetores bidimensionais matrizes Matrizes dinâmicas ATENÇÃO
Leia maisFontes Bibliográficas. Listas Circulares. Função Imprime
Fontes Bibliográficas Estruturas de Dados Aula 12: Outras Implementações de Listas Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo
Leia maisMétodos Computacionais. Variações de Listas Encadeadas
Métodos Computacionais Variações de Listas Encadeadas Variações de Listas Encadeadas Listas podem variar quanto ao: Tipo de encadeamento Simples Circulares Duplas Circulares e Duplas Conteúdo Tipos Primitivos
Leia maisListas Encadeadas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Listas Encadeadas Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Fevereiro de 2011 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas 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 maisEstruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 17 - Busca 2/6/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 maisINF 1007 Programação II
INF 1007 Programação II Aula 08 Vetor de Ponteiros Edirlei Soares de Lima Vetor de Cadeia de Caracteres Um vetor de cadeia de caracteres pode ser alocado de duas formas: Alocação
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 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 maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Vetores e alocação dinâmica Vetores Alocação dinâmica Vetores locais e funções ATENÇÃO Esta apresentação
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 maisINF 1007 Programação II
INF 1007 Programação II Aula 07 Vetor de Ponteiros Edirlei Soares de Lima Vetor de Cadeia de Caracteres Vetores de cadeias de caracteres. Exemplo: char alunos[50][81]; Função para
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 Arquivos Funções para abrir e fechar arquivos Arquivos em modo texto Arquivos em modo binário ATENÇÃO
Leia maisÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior
ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda
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 maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) ASN Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso
Leia maisListas Lineares. continuando...
Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,
Leia maisAlocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)
Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática
Leia 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 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 maisÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 13 Pilhas Edirlei Soares de Lima Pilha Uma pilha é uma estrutura de dados dinâmica na qual novos elementos são sempre inseridos no topo da pilha e acessados
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 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 maisINF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1
INF1007 Programação 2 9 Pilhas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Interface do tipo pilha Exemplo de uso: verificação de expressões Implementação de pilha com lista encadeada
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 maisINF 1620 P2-01/11/03 Questão 1 Nome:
INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,
Leia 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 maisProgramação de Computadores II. Cap. 17 Busca
Programação de Computadores II Cap. 17 Busca Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:
Leia maisDAINF - Departamento de Informática
DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.
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 maisINF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 6 Ordenação de Vetores 01/10/2015 (c) Dept. Informática - PUC-Rio 1 Tópicos Introdução Ordenação bolha (bubble sort) Ordenação por seleção (selection sort) 01/10/2015 (c) Dept. Informática
Leia maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010 Aluno: Matrícula: Turma: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova
Leia maisEstruturas de Dados Aula 16: Árvores com Número Variável 13/06/2011
Estruturas de Dados Aula 16: Árvores com Número Variável de Filhos 13/06/2011 1 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos
Leia maisEstruturas de Dados Aula 17: Estruturas Genéricas 15/06/2011
Estruturas de Dados Aula 17: Estruturas Genéricas 15/06/2011 1 Fontes Bibliográficas Livro: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 14; Slides baseados no material da PUC-Rio,
Leia maisPRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: 22/09/2010
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA Bacharelado em Ciência da Computação e Engenharia da Computação INF 01203 Estruturas de Dados Profa. Renata Galante (galante@inf.ufrgs.br
Leia maisProgramação de Computadores II. Cap. 16 Ordenação
Programação de Computadores II Cap. 16 Ordenação Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:
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 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 maisListas (Parte 1) Túlio Toffolo BCC202 Aula 09 Algoritmos e Estruturas de Dados I
Listas (Parte 1) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 09 Algoritmos e Estruturas de Dados I Ementa do Curso Tipos Abstratos de Dados / Alocação Dinâmica Análise de Algoritmos
Leia mais12. Filas Interface do tipo fila
12. Filas W. Celes e J. L. Rangel Outra estrutura de dados bastante usada em computação é a fila. Na estrutura de fila, os acessos aos elementos também seguem uma regra. O que diferencia a fila da pilha
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 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 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 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 maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
CES- Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Árvores CES- Operações sobre uma árvore Estruturas para armazenar árvores Contígua Contígua melhorada Encadeada
Leia maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010 Aluno: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova deve ser completamente
Leia maisLista: conceito, representação e algoritmos
Lista: conceito, representação e algoritmos SCC0502 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 maisProgramação de Computadores II. Cap. 4 Funções
Programação de Computadores II Cap. 4 Funções Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:
Leia maisEstrutura de Dados Listas
Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan tiago@ci.ufpb.br Conteúdos Abordados O Conceito de Listas Listas com Representação
Leia 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 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 mais13. ALOCAÇÃO DINÂMICA DE MEMÓRIA
787878787878787878787878787878787878787878787878787878 13. ALOCAÇÃO DINÂMICA DE MEMÓRIA Sempre é necessário declarar o número de elementos do array. Mas e se ele for desconhecido? E se ele variar? Pode
Leia maisMódulo 8 Tipos Estruturados
Estruturas de Dados Módulo 8 Tipos Estruturados 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 maisMódulo 7 Cadeias de Caracteres
Estruturas de Dados Módulo 7 Cadeias de Caracteres 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
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 maisProgramação de Computadores II. Cap. 5 Vetores
Programação de Computadores II Cap. 5 Vetores Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:
Leia maisListas: nós de cabeçalho, listas não homogêneas, listas generalizadas
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas SCC-502 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Lista com nó de cabeçalho Nó de cabeçalho Header, sentinela, etc.
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 maisAlgoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1
Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação
Leia maisReferências. Programação de Computadores II. Cap. 6 Matrizes. Tópicos. Alocação Estática versus Dinâmica. Alocação Estática versus Dinâmica
Referências Programação de Computadores II Cap. 6 Matrizes Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo 6 Matrizes Livro: Waldemar
Leia maisEstruturas de Dados Aula 10: Listas (parte 2) 19/04/2011
Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011 Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo
Leia maisEstrutura de Dados. Ricardo José Cabeça de Souza Parte 9
Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 9 VETOR Ao declararmos um vetor, reservamos um espaço contíguo de memória para armazenar seus elementos Vetor não é uma estrutura
Leia maisEstruturas de Dados. Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais:
Estruturas de Dados Listas Dinâmicas Simplesmente Encadeadas Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais: disponíveis
Leia maisEstruturas de Dados. Módulo 6 Matrizes. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 6 Matrizes 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 maisEstrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 4: Listas Estáticas e Dinâmicas Listas Estáticas: com Vetores Dinâmicas: Listas Ligadas (com ponteiros) Variáveis e Métodos de Controle:
Leia maisSCC 202 Algoritmos e Estruturas de Dados I. Listas Lineares Encadeadas Alocação dinâmica
SCC 202 Algoritmos e Estruturas de Dados I Listas Lineares Encadeadas Alocação dinâmica Lista Encadeada Dinâmica Utiliza alocação dinâmica de memória ao invés de arranjos (vetores) pré-alocados. Inserção
Leia maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010 Aluno: Matrícula: Turma: Instruções: 1) Escreva seu nome completo, matrícula e turma; 2) A prova deve ser completamente resolvida
Leia maisAluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0
P4 Programação II 2012.2 Departamento de Informática/PUC- Rio Aluno: Matrícula: Turma: 1. A prova é sem consulta e sem perguntas. A interpretação do enunciado faz parte da prova. 2. A prova deve ser completamente
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 05 Recursividade Edirlei Soares de Lima Introdução As seguintes sentenças são Verdadeiras ou Falsas? 1. Alguém diz: Estou mentido agora! ; 2. Alguém
Leia maisListas - Outras. Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações
Listas - Outras Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações 5 e 7/10/2010 Listas Circulares Encadeadas Dinâmicas Se o nó next do último nó apontar para o primeiro, teremos
Leia maisFontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:
Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas
Leia maisReinaldo Gomes Alocação Dinâmica
Algoritmos e Lógica de Programação Linguagem C Alocação Dinâmica i de Memória Reinaldo Gomes reinaldo@cefet-al.br Alocação Dinâmica Quando declaramos uma variável ou um arranjo, o compilador automaticamente
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação
Leia maisA regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out).
Fila Algumas aplicações impõem regras de acesso às informações armazenados em estruturas de dados, restringindo como os dados são inseridos e removidos da estrutura. A fila, também conhecida como QUEUE,
Leia maisLista Encadeada: algoritmos. Algoritmos e Estruturas de Dados I
Lista Encadeada: algoritmos Algoritmos e Estruturas de Dados I Operações genéricas sobre lista Considerando a representação de lista anterior, implemente o TAD lista com as seguintes operações criarlista(lista)
Leia maisAlgoritmos e Estruturas de Dados II IEC013
Algoritmos e Estruturas de Dados II IEC013 Revisão: Listas Encadeadas Prof. César Melo Todos os créditos reservados ao professor Leandro Galvão Listas Encadeadas Listas encadeadas ou listas ligadas representam
Leia 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 maisAlgoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta
Algoritmos e Estruturas de Dados Prof. Marcelo Zorzan Profa. Melissa Zanatta Assuntos da Aula Alocação de Memória Alocação estática de memória Alocação dinâmica de memória Malloc, Calloc, Free, Realloc
Leia maisMódulo 14 - Estruturas genéricas
Estruturas de Dados Módulo 14 - Estruturas genéricas 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
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 maisIntrodução à Programação
Introdução à Programação Aula 08 Ponteiros Edirlei Soares de Lima Endereço de uma Variável Toda variável definida em um programa ocupa uma área de memória; A cada área de memória
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 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 maisINF 1007 Programação II
INF 1007 Programação II Aula 04 Alocação Dinâmica Edirlei Soares de Lima Vetores - Declaração e Inicialização Declaração de um vetor: int meu_vetor[10]; Reserva um espaço de memória
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 mais