Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas
|
|
|
- Renato de Miranda Terra
- 8 Há anos
- Visualizações:
Transcrição
1 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 no momento da compilação. 2- Os dados em uma matriz estão separados na memória do computador pela mesma distância, o que significa que inserir um item dentro da matriz exige que se movam outros dados nessa matriz. Tal limitação pode ser superada usando-se estruturas ligadas. Uma estrutura ligada é uma coleção de nós, que armazenam dados e ligações com outros nós. Desse modo, os nós podem estar em qualquer lugar na memória, e a passagem de um nó para outro da estrutura ligada é realizada armazenando os endereços de outros nós na estrutura ligada. Listas Simplesmente Encadeadas Uma lista simplesmente encadeada é uma sequência de nós, onde cada nó contém uma informação de algum tipo de dado e o endereço do nó seguinte. Vamos supor que a informação seja uma variável do tipo int. Veja abaixo um exemplo de uma lista simplesmente encadeada. Lista Onde: lista é um ponteiro para o primeiro nó da lista que contém o valor "1" e um ponteiro para o próximo nó. Já o último nó da lista aponta para NULL, indicando fim da lista. A estrutura de cada nó de uma lista pode ser definida assim: typedef struct { int info; struct lista *proximo; lista; 1
2 Criação de Novos Elementos (nós) para a lista Antes de inserirmos um elemento na lista, precisamos criá-lo da seguinte maneira: lista *criarelemento(int info){ lista *no = (lista*) malloc(sizeof (lista)); if (no == NULL){ return NULL; no->info = info; no->proximo = NULL; return no; Inserção de Nós na Lista Após a criação do nó, devemos inseri-lo na lista. Temos três casos para inserção de elementos na lista: O nó é inserido no início da lista O nó é inserido no meio da lista O nó é inserido no fim da lista Quando o nó é inserido no início da lista deve-se fazer o campo "próximo" deste nó apontar para o primeiro elemento da lista, e em seguida fazer a lista apontar para este nó recém-criado. Segue abaixo um exemplo em linguagem C void inseririnicio(lista **listatotal, lista *elemento){ if(*listatotal == NULL){ *listatotal = elemento; elemento->proximo =(struct lista *) *listatotal; *listatotal = elemento; 2
3 Quando o nó é inserido no fim da lista, deve-se fazer o campo "próximo" do último nó da lista apontar para o elemento que se deseja inserir. Para tanto, devemos percorrer a lista até encontrar o último elemento. Lembrando que o último elemento sempre aponta para NULL. Abaixo temos um exemplo em linguagem C. void inserirfim(lista **listatotal, lista *elemento){ lista *elementoauxiliar; /* Percorre a lista ateh encontrar o ultimo elemento */ while (elementoauxiliar->proximo!= NULL){ elementoauxiliar = (lista *) elementoauxiliar->proximo; elementoauxiliar->proximo = (struct lista *) elemento; Quando o nó é inserido no meio da lista, deve-se informar a partir de qual nó o novo elemento será inserido. Ou seja, vamos utilizar o campo "info" para fazer uma pesquisa na lista, e após encontrá-lo, inserir o novo elemento. Abaixo temos um exemplo em linguagem C. void inserirmeio(lista **listatotal, lista *elemento, int info){ lista *elementoauxiliar; int encontrou=0; /* Percorre a lista ateh encontrar o no procurado */ while(encontrou == 0 && elementoauxiliar->proximo!= NULL){ /* Verifica se o no atual eh o no procurado */ if (elementoauxiliar->info == info){ /* O novo no sera inserido apos o no atual */ elemento->proximo = elementoauxiliar->proximo; elementoauxiliar->proximo=(struct lista *) elemento; encontrou = 1; elementoauxiliar=(lista *) elementoauxiliar->proximo; 3
4 Percorrendo a Lista Em situações de busca por um valor, ou para impressão de uma lista, deve-se percorrer a lista a partir do primeiro elemento até onde for desejado, ou seja, até achar o nó (elemento) procurado ou chegar ao final da lista. Veja abaixo um exemplo para encontrar o nó procurado. lista *buscarelemento(lista **listatotal, int valorprocurado){ lista *elementoauxiliar; int encontrou=0; /* Percorre a lista ateh encontrar o no procurado, ou ateh o fim da lista */ while(encontrou == 0 && elementoauxiliar!= NULL){ /* Verifica se o no atual contem o valorprocurado */ if (elementoauxiliar->info == valorprocurado){ /* encontrou o no procurado */ encontrou = 1; elementoauxiliar=(lista *)elementoauxiliar->proximo; /* Se encontrou o no procurado, retorna o no */ if (encontrou == 1){ return elementoauxiliar; /* Se nao encontrou, retorna NULL */ return NULL; 4
5 Remover um Elemento da Lista A função para retirar um elemento da lista é mais complexa. Se descobrirmos que o elemento a ser retirado é o primeiro da lista, devemos fazer com que o novo valor da lista passe a ser o ponteiro para o segundo elemento, e então podemos liberar o espaço alocado para o elemento que queremos retirar. Se o elemento a ser removido estiver no meio da lista, devemos fazer com que o elemento anterior a ele passe a apontar para o elemento seguinte, e então podemos liberar o elemento que queremos retirar. Devemos notar que, no segundo caso, precisamos do ponteiro para o elemento anterior para podermos acertar o encadeamento da lista. Veja abaixo as figuras que ilustram a remoção. Remoção do primeiro elemento (nó) da lista Remoção de um elemento (nó) no meio da lista Segue abaixo um exemplo em linguagem C de uma função para retirar um elemento (nó) da lista. Inicialmente, busca-se pelo elemento (nó) que se deseja retirar, guardando uma referência para o elemento anterior. 5
6 int removerelemento(lista **listatotal, int valorprocurado){ lista *elementoauxiliar, *elementoanterior; int encontrou=0; elementoanterior = *listatotal; /* Percorre a lista ateh encontrar o elemento (nó) procurado */ while (encontrou == 0 && elementoauxiliar!= NULL){ if (elementoauxiliar->info == valorprocurado){ /* Encontrou o elemento (nó) procurado */ encontrou = 1; /*nao encontrou o elemento(nó). Avança ao proximo */ elementoanterior = elementoauxiliar; elementoauxiliar=(lista *) elementoauxiliar->proximo; if (encontrou == 1){ /* Verifica se o elemento (nó) encontrado eh o primeiro da lista */ if (elementoanterior == elementoauxiliar && elementoauxiliar == *listatotal){ *listatotal = (lista *) elementoauxiliar->proximo; /*Caso o elemento(nó) encontrado nao seja o primeiro da lista*/ elementoanterior->proximo=elementoauxiliar->proximo; /* Libera a memoria alocada */ free(elementoauxiliar); elementoauxiliar = NULL; return 1; /*Retorna zero indicando que o elemento(no) nao foi encontrado*/ return 0; Destruir a Lista A memória é alocada para cada elemento novo que é inserido na lista. Conseqüentemente, ao terminar de usar a lista, deve-se liberar a memória utilizada. Exemplo em linguagem C para destruir a lista. void desturirlista(lista **listatotal){ lista *elementoauxiliar1, *elementoauxiliar2; elementoauxiliar1 = *listatotal; while (elementoauxiliar1!= NULL){ elementoauxiliar2 = (lista *)elementoauxiliar1->proximo; free(elementoauxiliar1); elementoauxiliar1 = elementoauxiliar2; *listatotal = NULL; 6
7 Listas Circulares Algumas aplicações necessitam representar conjuntos cíclicos. Por exemplo, os dias da semana ou os meses do ano. Após o último, vem sempre o primeiro novamente, reiniciando um novo ciclo. Para esses casos, podemos utilizar listas circulares. Numa lista circular, o último elemento tem como próximo o primeiro elemento da lista, formando um ciclo. A rigor, neste caso, não faz sentido falarmos em primeiro ou último elemento. A lista pode ser representada por um ponteiro para um elemento inicial qualquer da lista. A figura abaixo ilustra a representação de uma lista circular. Para percorrer os elementos de uma lista circular, visitamos todos os elementos a partir do ponteiro do elemento inicial até alcançarmos novamente esse mesmo elemento. O código abaixo exemplifica essa forma de percorrer os elementos. void percorrelistacircular(lista **listatotal){ lista *elementoauxiliar; /* Verifica se a lista estah vazia */ if (elementoauxiliar == NULL){ return; do{ printf("%d\n", elementoauxiliar->info); elementoauxiliar = (lista *)elementoauxiliar->proximo; while (elementoauxiliar!= *listatotal); 7
8 Listas Duplamente Encadeadas Em uma lista duplamente encadeada cada elemento (nó) tem um ponteiro para o próximo elemento e um ponteiro para o elemento anterior. Desta forma, dado um elemento, podemos acessar ambos os elementos adjacentes: o próximo e o anterior. Se tivermos um ponteiro para o último elemento da lista, podemos percorrer a lista em ordem inversa, bastando acessar continuamente o elemento anterior, até alcançar o primeiro elemento da lista, que não tem elemento anterior, ou seja, aponta para NULL. NULL NULL O elemento (nó) de uma lista duplamente encadeada pode ser representado pela estrutura abaixo. typedef struct { int info; struct lista *proximo; struct lista *anterior; lista; 8
9 Função main (principal) para testar a lista ligada #include <stdio.h> #include <stdlib.h> #include <conio.h> int main(int argc, char *argv[]) { lista *listatotal=null, *elemento1=null, *elemento2=null; lista *elemento3, *elemento4, *elemento5, *elementobusca; elemento1 = criarelemento(1); inseririnicio(&listatotal, elemento1); elemento2 = criarelemento(2); inseririnicio(&listatotal, elemento2); elemento3 = criarelemento(3); inserirfim(&listatotal, elemento3); elemento4 = criarelemento(4); inserirfim(&listatotal, elemento4); elemento5 = criarelemento(5); inserirmeio(&listatotal, elemento5, 3); elementobusca = buscarelemento(&listatotal, 10); /* Exemplo para remover o primeiro elemento da lista */ /* removerelemento(&listatotal, 2); */ /* Exemplo para remover o ultimo elemento da lista */ /* removerelemento(&listatotal, 4); */ /* Exemplo para remover um elemento do meio da lista */ removerelemento(&listatotal, 10); desturirlista(&listatotal); getch(); return 0; 9
A regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out).
Fila Algumas aplicações impõem regras de acesso às informações armazenados em estruturas de dados, restringindo como os dados são inseridos e removidos da estrutura. A fila, também conhecida como QUEUE,
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
Estrutura 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
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
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 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 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
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
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
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
Estruturas 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)
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)
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
Atividade de laboratório listas encadeadas simples
Atividade de laboratório listas encadeadas simples 1. Estrutura básica Uma lista encadeada simples é uma estrutura de dados composta de uma seqüência de estruturas elementares chamadas nós. Cada nó contém
Listas 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
Linguagem C: Listas Encadeadas
Prof. Paulo R. S. L. Coelho [email protected] 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
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
ÁRVORE BINÁRIA DE BUSCA
ÁRVORE BINÁRIA DE BUSCA Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e remover elementos
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
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 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
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
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,
1. 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
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
Mé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
PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco
PONTEIROS E LISTAS Kalinka Regina Lucas Jaquie Castelo Branco [email protected] 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
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
Alocaçã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
Aula 17: Ponteiros e Alocação Dinâmica em C
Aula 17: Ponteiros e Alocação Dinâmica em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores
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
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:
AULA 14 ESTRUTURA DE DADOS
AULA 14 ESTRUTURA DE DADOS Matriz esparsa Norton T. Roman & Luciano A. Digiampietri Matriz Uma matriz bidimensional é um conjunto de elementos (ou tabela) composta por m linhas e n colunas. Matriz Uma
Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM
Árvores Binária de Busca Prof. César Melo DCC/ICE/UFAM Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos
struct Nodo { int struct Nodo struct Nodo typedef struct Nodo *PNodo; int ConstruirLista (PNodo *H, PNodo *T) { int Criar
struct Nodo { int Elemento; struct Nodo *Prox; struct Nodo *Ant; ; typedef struct Nodo *PNodo; Copiar para o ficheiro ListasLigadasDuplas.h e adaptar as funções associadas às seguintes operações: Criar;
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?
Ponteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Árvores. Prof. César Melo DCC/ICE/UFAM
Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não podem ser usadas como hierarquias. Exemplo: árvore
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
Aula 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
Listas 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
Árvore Binária de Busca. Prof. César Melo
Árvore Binária de Busca Prof. César Melo Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e
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
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
Programaçã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
Árvores. Prof. César Melo DCC/ICE/UFAM
Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não adequadas para representar hierarquias. Exemplo:
Tipos abstratos de dados; pilhas e filas
1 Tipos abstratos de dados; pilhas e filas Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html http://www.ime.usp.br/~pf/algoritmos/aulas/fila.html
1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
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 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
Á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
DAS5102 Fundamentos da Estrutura da Informação
Ponteiros e Funções Funções ou sub-rotinas são parcelas de código que podem ser invocadas a partir do programa principal ou até mesmo por outras sub-rotinas. Elas têm como objetivo a execução de uma tarefa
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
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,
LISTAS LINEARES. Estrutura de Dados
LISTAS LINEARES Lista Linear Definição: seqüência de zero ou mais elementos a 1,a 2,...,a n sendo a i elementos de um mesmo tipo n o tamanho da lista linear Propriedade fundamental: os elementos têm relações
