1. Listas sequenciais versus listas ligadas. Lista sequencial
|
|
|
- Marcela Barroso Silveira
- 9 Há anos
- Visualizações:
Transcrição
1 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 sequencial. O elemento i é precedido pelo elemento i-1 e seguido pelo elemento i+1. Como os elementos são contíguos, para se acessar um elemento só é necessário conhecer o seu índice, pois o índice indica também o deslocamento a partir do início. Claro que para isso, os elementos devem ter o mesmo tamanho. A vantagem é o acesso direto a qualquer dos elementos da lista. A desvantagem é que para inserir ou remover elementos, temos que deslocar muitos outros elementos Listas Ligada (i-1) i (i+1) inserir remover Uma lista ligada é um conjunto de elementos onde cada elemento indica qual o próximo. Não existe contiguidade entre os elementos. Elementos vizinhos podem estar em posições físicas de memória separadas. A vantagem é a flexibilidade na inserção e remoção de elementos. A desvantagem é que não temos acesso direto aos elementos. Não existe algo equivalente ao índice para se acessar diretamente o elemento Listas ligadas - definições É um conjunto de itens, onde cada elemento contém uma informação e um ponteiro para o próximo item. Possui também um ponteiro para o seu início e o ponteiro do último elemento tem um valor especial (NULL).
2 P (inicio) O campo de informação pode conter qualquer tipo ou conjunto de tipos de elementos. O ponteiro para o próximo item é um ponteiro para um item do mesmo tipo. Exemplos: a) campo de informação = int: struct item { int info; struct item *prox; b) campo de informação = 2 ints e 1 double: struct novoitem { int i, j; double a; struct novoitem *prox; c) campo de informação = vetor de char: struct no { char s[30]; struct no *prox d) campo de informação = struct com 2 ints e 1 double: struct info { int i, j; double a; struct novono { struct info x; struct novono *prox;
3 Observe que a definição do tipo de um elemento de uma lista é recursiva. Veja no primeiro exemplo: usamos na definição de struct int o próprio struct item. O compilador C permite. Considere ainda o primeiro exemplo. Outra maneira de fazer a mesma definição é usar o typedef que é apenas um modo de atribuirmos um sinônimo (em geral um nome mais simples) a um tipo (em geral mais complexo) na linguagem C. Fica um pouco mais elegante. /* cria sinomimo para struct item * */ typedef struct item *link; /* declara a struct item */ struct item { int info; link prox; /* declara um ponteiro para um elemento */ link p; Refaça os exemplos acima usando typedef. Nos exemplos a seguir usaremos sempre esta última definição de struct item, com o campo info do tipo int. Porém, fica claro que info pode conter qualquer tipo de informação. 3. Operações básicas com listas ligadas Vejamos agora, algumas operações com listas ligadas, usando a declaração acima: /* criar um lista apontada por p com o primeiro elemento */ p = (link) malloc (sizeof(struct item)); p->info = 99; p->prox = NULL; p 99 /* remover o nó seguinte ao apontado por p */ t = p->prox; p->prox = t->prox; free(t);
4 p t /*inserir um novo nó(apontado por t)após nó apontado por p*/ t->prox = p->prox; p->prox = t; p t /* função que procura elemento com info=x numa lista ligada devolve ponteiro para elemento encontrado ou NULL */ link busca(link t, int x) { link q; q = t; while (q!= NULL) { if (q->info == x) return q; q = q->prox; return NULL; /* não encontrou */ /* Dado um um trecho de um vetor a[l..r] de inteiros, criar lista ligada onde a[l] é o primeiro elemento, a[l+1] o segundo, etc... até a[r] o último elemento. Devolve ponteiro para o início da lista */ link crialista(int a[], int l, int r) { link q=null; int i; link t; /* varre o vetor no sentido inverso */ for (i=r; i >=l; i--) {
5 t = (link) malloc (sizeof(struct item)); t->info = a[i]; t->prox = q; /* aponta para o anterior */ q = t; /* novo anterior */ return q; Na solução acima a lista é varrida do fim para o começo. Exercício fazer o mesmo, varrendo a lista do início para o fim. 4. Pilhas e filas Alocação Dinâmica Pilhas e filas são estruturas de dados básicas que podem ser construidas como listas ligadas. Pilha (LIFO - Last In First Out) topo... Empilhar - inserir elemento com conteúdo x antes do primeiro (apontado por topo). link topo; /* variável global */ void EmPilha(int x) { link t = (link) malloc (sizeof(struct item)); t->info = x; t->prox = topo; topo = t; Desempilhar - retirar elemento apontado por topo. Retorna -1 se a pilha vazia ou 0 se a remoção for normal. int DesEmPilha(int * x) { link t; if (topo == NULL) return -1; /* pilha vazia */ else {*x = topo->info; t = topo; topo = topo -> prox; /* novo topo */ free(t); /* libera elemento removido */ return 0;
6 Fila (FIFO - First In First Out) Tem 2 apontadores (I- início e F- fim). I F... Enfilar - Inserir elemento após o último (apontado por F). Se a fila estiver vazia, I e F são NULL. link I,F; /* globais */ void EnFila(int x) { link t = (link) malloc (sizeof(struct item)); t->prox = NULL; t->info = x; if (F == NULL) I = F = t; /* a fila estava vazia */ else {F->prox = t; F = t; Desenfilar - Remover o primeiro elemento (apontado por I). Devolver -1 se a fila estava vazia, senão devolve 0. int DesEnFila(int *x) { if (I == NULL) return -1; /* a fila está vazia */ else {*x = I->info; t = I; I = I->prox; if (I == NULL) F = NULL; /* a fila ficou vazia */ free(t); /* libera elemento removido */ return 0; 5. Listas Circulares e duplamente ligadas Circulares O último item aponta para o primeiro. É conveniente o uso de nó especial (sentinela) para determinar o início e fim.
7 Numa lista circular, pode-se acessar todos os elementos a partir de qualquer elemento. t Quando a lista está vazia: t /* busca elemento de info=x - lista circular com sentinela */ link busca(link t, int x) { link p; p = t->prox; t->info = x; /* o primeiro item é a sentinela */ while (p->info!= x) p = p->prox; /* verifica se achou */ if (p == t) return NULL; /*sentinela - então não achou */ return p; /* achou */ /* idem mas devolvendo ponteiro ao elemento anterior */ link busca(linkt, int x) { link p, pant; pant = t; p = t->prox; t->info = x; /* o primeiro item é a sentinela */ while (p->info!= x) { pant = p; p = p->prox; /* verifica se achou */ if (p == t) return NULL;/*achou sentinela então não achou*/ return pant; /* achou */
8 Duplamente ligadas Gastam mais espaço, mas a mobilidade é maior (é possível percorrer a lista nos dois sentidos). O nó sentinela também é bastante útil. typedef struct item *link; struct item {int info; link ant, prox; t Para se remover um elemento de uma lista ligada simples, é necessário o acesso ao elemento anterior. Isso não acontece numa lista duplamente ligada. Com um ponteiro para um dos elementos pode-se: a) Remover este elemento b) Inserir elemento anterior ou posterior a este. 6. Listas ligadas e recursão Listas ligadas simples (não circulares e sem sentinela) são estruturas claramente recursivas. Por isso, admitem também algoritmos recursivos. Cada nó de uma lista ligada pode ser entendido como um ponteiro para uma nova lista ligada. Vejamos uma definição informal: Definição: Lista Ligada = { NULL ou Elemento contendo um campo de informação e um ponteiro para uma Lista Ligada Algumas funções recursivas com lista ligada /* função conta(x) que conta o número de elementos de uma lista apontada por x */ int conta(link x) { if (x == NULL) return 0; return 1 + conta(x->prox) /* função procura(x,v) que procura elemento com info = v
9 na lista apontada por x */ link procura(link x, int v) { if (x == NULL) return NULL; if (x->info == v) return x; return procura(x->prox, v); /* Função compara(x, y) que compara o conteúdo (campo info) de duas listas ligadas apontas por x e y respectivamente. Devolve 0 se forem iguais, 1 se x>y e -1 se x<y. */ int compara(link x, link y) { if (x == NULL && y == NULL) return 0; if (x->info == y->info) return compara(x->prox, y->prox); if (x->info > y->info) return 1; return -1; /* função remove(x,v) que remove item com info = v da lista apontada por x. Solução um pouco artificial */ link remove(link x, int v) { if (x == NULL) return NULL; if (x->info == v) { link t; /* retorna o próximo elemento da lista */ t = x->prox; free(x); return t; x->prox = remove(x->prox, v); return x; 7. A vantagem das listas ligadas sobre as listas sequenciais Não resta dúvida que mexer com uma lista ligada é mais complexo que mexer com lista sequencial. Qual a vantagem afinal? Numa lista ligada estamos usando exatamente a quantidade necessária de elementos para a lista num determinado instante. O número de elementos é em geral só conhecido durante a execução do programa. A cada elemento adicionado à lista, cria-se apenas mais um elemento com o malloc. Numa lista sequencial, o vetor tem que ser declarado ou alocado (malloc), com um número máximo de elementos. Isso nos leva sempre a dimensioná-lo para o pior caso. Mesmo quando sabemos o número exato de elementos e o dimensionamos assim, o problema de adicionar ou eliminar elementos não fica resolvido.
10 Exercícios: Lista ligada simples 1) int conta(link p) Devolve a quantidade de elementos da lista apontada por p. 2) int conta (link p, info x) Devolve a quantidade de elementos com o campo de informação igual a x da lista apontada por p. 3) link remove (link p, info x) Remove da lista apontada por p, o primeiro elemento com o campo de informação igual a x. Devolve ponteiro para o início da lista. Note que se for o primeiro elemento a ser removido, o início da lista muda. Obs: neste caso, ao procurar elemento com informação igual a x, é necessário sempre manter um ponteiro para o anterior a ele. Cuidado com os casos particulares: lista vazia, lista com um só elemento ou remoção do primeiro elemento. 4) link removetodos (link p, info x) Remove da lista apontada por p, todos os elementos com o campo de informação igual a x. Obs: mesmas observações anteriores. 5) void remove (link * p, info x) Idem à remove acima. Se for removido o primeiro elemento altera o ponteiro para o início da lista. Por isso, o parâmetro p é ponteiro de ponteiro. 6) void removetodos (link * p, info x) Idem à removetodos acima. Se for removido o primeiro elemento altera o ponteiro para o início da lista. Por isso, o parâmetro p é ponteiro de ponteiro. 7) void troca (link p, link q) Troca o conteúdo dos nós apontados por p e q numa lista ligada. Listas ligadas circulares (com sentinela t) 8) int procura (link p) Verifica se p pertence a lista, ou seja, se é um dos elementos da lista. 9) void transforma(link p) Transforma a lista numa lista ligada não circular Listas duplamente ligadas (com sentinela t) 10) void remove (link p) Remove elemento apontado por p da lista
11 11) void insere (link p, info x) Insere elemento apontado por p à frente do elemento cujo campo de informação é igual a x
Árvores Binárias de Busca
0. Um breve comentário sobre os algoritmos de busca em tabelas De uma maneira geral, realizam-se operações de busca, inserção e remoção de elementos numa tabela. A busca sequencial tradicional é O(N).
LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados
LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS Listas Lineares Como visto anteriormente, as operações básicas para o nosso TAD Lista Linear são: FLVazia Vazia Retira Insere Imprime A implementação através de arrays
Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Vetores vs Estruturas Dinâmicas Vetores (arrays): Ocupa um espaço contíguo de memória Permite acesso randômico
S 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
REVISÃ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
Aula 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
Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção
Listas Lineares. continuando...
Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,
Listas: 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.
Computadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas
Estruturas 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
Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I
Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais
INF 1620 P2-01/11/03 Questão 1 Nome:
INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,
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
Instituto 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 [email protected] - http://lmarti.com Listas Encadeadas Definição Funções básicas Tópicos Principais
Aula 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
Estruturas 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
Introdução a Programação. Listas Encadeadas
Introdução a Programação Listas Encadeadas Tópicos da Aula Hoje aprenderemos que existem, além de vetores, estruturas de dados dinâmicas que podem armazenar coleções de dados Estruturas Dinâmicas e Vetores
Algoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin ([email protected]) Aula 6 Modularização Método que consiste em organizar programas grandes em pequenas partes (módulos) Cada módulo tem
Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas
Listas Ligadas (Encadeadas) Matrizes são estruturas de dados muito úteis fornecidas nas linguagens de programação. No entanto, elas têm pelo menos duas limitações: 1- Seu tamanho tem que ser conhecido
Filas Implementação Sequencial
SCE 202 182 Algoritmos e Estruturas de Dados I Filas Implementação Sequencial Conceito Coleção ordenada de itens (lista ordenada) em que a inserção de um novo item se dá em um dos lados no fim e a remoção
Estrutura de Dados Listas
Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan [email protected] Conteúdos Abordados O Conceito de Listas Listas com Representação
Conceitos. Pilhas e Filas. Conceitos e Implementação em linguagem C. Maria Adriana Vidigal de Lima. Março
Conceitos e Implementação em linguagem C Março - 2009 1 Conceitos 2 Organização dos dados Em determinadas aplicações, as pilhas e filas representam estruturas de dados importantes, nas quais seus elementos
Lista Encadeada (Linked List)
Lista Encadeada (Linked List) As listas ou listas encadeadas são a estrutura de dados mais simples concebível excetuando-se naturalmente os arrays. Listas encadeadas nada mais são que uma seqüência de
Algoritmos 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
UNIP - 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
Fila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Fila e Deque SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências
Mó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
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas. SCC-502 Algoritmos e Estruturas de Dados I
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas SCC-502 Algoritmos e Estruturas de Dados I Lista com nó de cabeçalho Nó de cabeçalho Header, sentinela, etc. Para que? Sentinela Beth
Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita
Listas lineares especiais s Acesso consulta inserção remoção Disciplina restrita de acesso Disciplina restrita acesso permitido somente em alguns nós Listas lineares especiais mais usuais LIFO Last In
12. 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
Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I
Aplicações de listas e outras estruturas SCC-52 Algoritmos e Estruturas de Dados I Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long int) são limitados Como somar números
ESTRUTURA DE DADOS (TCC )
ESTRUTURA DE DADOS (TCC-00.319) Listas lineares Pilhas e Filas Cristina Boeres 2 Manipulando listas lineares! Dependendo do problema a ser resolvidos, existem duas formas especiais (que veremos aqui no
Algoritmos e Estruturas de dados
Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores
SCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha
Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 11 Pilhas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 09: Listas (Parte 2) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes Email:
CES-11. Pilhas Definição Operações Filas. Operações Deques. Definição. Operações
CES-11 Pilhas Definição Operações Filas Definição Operações Deques Definição Operações PILHAS, FILAS E DEQUES As listas lineares admitem inserção e eliminação em qualquer posição. Pilhas, filas e deques
Estruturas de Dados I
Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi [email protected] 3410-2075 Aula 6: Listas Encadeadas e Alocação Dinâmica Listas Encadeadas e Alocação Dinâmica Alocação Seqüencial versus
Filas. 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:
Algoritmos e Funções Recursivas
Considere a definição da função fatorial: n! = 1 se n 0 Considere agora a seguinte definição equivalente: n! = 1 se n 0 Dizemos que essa última
Matrizes Esparsas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista
Matrizes Esparsas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto
Lista com descritor (continuação)
Lista com descritor (continuação) Rotina para remover o eiro elemento de uma LLSECD: char removeiniciollsecd(tdescritor *l, TInfo val) { p = l->; l->=p->prox; if (l->==1) Rotina para remover o último nó
REVISÃ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
Estruturas 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
Árvores Binárias. 16/11 Representação e Implementação: Encadeada Dinâmica O TAD
Árvores Binárias 16/11 Representação e Implementação: Encadeada Dinâmica O TAD ED AB, encadeada dinâmica Para qualquer árvore, cada nó é do tipo info esq dir typedef int elem; typedef struct arv *Arv;
Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta
Algoritmos e Estruturas de Dados Prof. Marcelo Zorzan Profa. Melissa Zanatta Assuntos da Aula Alocação de Memória Alocação estática de memória Alocação dinâmica de memória Malloc, Calloc, Free, Realloc
Aula 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
LP II Estrutura de Dados
LP II Estrutura de Dados Pilhas Estáticas Sequenciais Prof. José Honorato Ferreira Nunes [email protected] http://softwarelivre.org/zenorato/honoratonunes Pilhas - conceitos Pilhas são listas onde a inserção
Listas - 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
Pilhas e Filas. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.2 e 3.3
Pilhas e Filas Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.2 e 3.3 http://www2.dcc.ufmg.br/livros/algoritmos/ PILHAS Pilha É uma lista linear em que todas as inserções, retiradas e, geralmente,
Estruturas 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
L I C R P * * V O * * A * A F * * * * *
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 ([email protected]
Listas ligadas/listas encadeadas
1 Listas ligadas/listas encadeadas Leitura recomendada: http://www.ime.usp.br/~pf/algoritmos/aulas/lista.html 2 Processamento elementar de listas Definição mais restritiva (tipo de lista possivelmente
Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1
Listas Lineares Elerson R. S. Santos [email protected] 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
Estruturas 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)
Algoritmos e estrutura de dados
Algoritmos e estrutura de dados Listas Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Listas Listas encadeadas
Árvores & Árvores Binárias
Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente
Listas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Listas Encadeadas David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo Elementos não
Pilhas e Filas. Nádia Félix e Hebert Coelho
Pilhas e Filas Nádia Félix e Hebert Coelho Vários slides foram adaptados de Nina Edelwais e Renata Galante Estrutura de Dados Série de Livros Didáticos - Informática - UFRGS Pilhas e filas Listas lineares
SCC 202 Prova 1. 28/9/2010 Resolução e Comentários
SCC 202 Prova 1 28/9/2010 Resolução e Comentários Questão 1) (3.5) Sobre TADs. a) O que é e quais são as vantagens de se utilizar Tipos Abstratos de Dados (TADs) no projeto de desenvolvimento de software?
Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno [email protected] / [email protected] Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
