Estruturas de Dados I

Tamanho: px
Começar a partir da página:

Download "Estruturas de Dados I"

Transcrição

1 Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi [email protected] Aula 6: Listas Encadeadas e Alocação Dinâmica

2 Listas Encadeadas e Alocação Dinâmica

3 Alocação Seqüencial versus Alocação Dinâmica Seqüencial ou Estática: Operações em listas implementadas com alocação seqüencial são muito fracas; Na utilização de mais de duas listas, a gerência de memória é mais complexa usar alocação dinâmica (ou alocação encadeada); Na alocação encadeada, as posições de memória são alocadas (ou desalocadas) na medida em que são necessárias (ou dispensadas).

4 Alocação Seqüencial versus Alocação Dinâmica Seqüencial ou Estática: Todo espaço de memória a ser utilizado (para armazenar os elementos) é reservado (alocado) em tempo de compilação; Esse espaço de memória permanece alocado durante toda execução do programa, independente de estar efetivamente sendo usado ou não.

5 Alocação Seqüencial versus Alocação Dinâmica Encadeada ou Dinâmica: O espaço de memória a ser utilizado (para armazenar os elementos) pode ser alocado em tempo de execução, quando for efetivamente necessário (é possível alocar espaço para um elemento de cada vez); O espaço alocado pode ser liberado em tempo de execução, quando não for mais necessário.

6 Alocação Seqüencial versus Alocação Dinâmica Vantagens e Desvantagens: A alocação encadeada é mais conveniente quando o problema inclui o tratamento de mais de uma lista; O acesso ao k-ésimo elemento da lista é imediato na alocação seqüencial, mas na alocação encadeada obriga ao percurso na lista até o elemento desejado.

7 Alocação Seqüencial versus Alocação Dinâmica Seqüencial ou Estática: 5 C B A Topo

8 Alocação Seqüencial versus Alocação Dinâmica Encadeada ou Dinâmica: B 5 Depois de Depois de mim vem o... A 4 3 mim vem o... C 2 Topo 1

9 Listas Encadeadas Uma lista encadeada L, com n blocos de memória B 1, B 2,... B n é definida pelas seguintes características: Cada bloco de memória B i, 0 <= i < n, ou cada nó da lista tem pelo menos dois campos: Informação a ser armazenada; Indicação do próximo elemento na lista. Os blocos não estão necessariamente em seqüência na lista.

10 Listas Encadeadas Continuação (...) O acesso aos elementos da lista ocorre através de um ponteiro do início da lista (primeiro elemento); O acesso aos demais elementos ocorre através da indicação de quem é o próximo elemento na seqüência; O último nó da lista indica um endereço inválido, chamado NIL ou NULL.

11 Listas Encadeadas Representação: Ptr (ponteiro para início da lista L) A B C D B 1 B 2 B 3 B n Fim da lista NULL Se Ptr apontar para NULL (fim da lista), significa que a lista está vazia.

12 Listas Encadeadas Nas listas encadeadas os nós não estão, obrigatoriamente, em posições contíguas da memória; As operações de inserção ou remoção de elementos requerem encontrar novas posições de memória para armazenamento e liberar outras que possam ser reutilizadas posteriormente; É preciso, portanto, gerenciar a memória disponível;

13 Listas Encadeadas Linguagens de alto nível possuem um módulo de gerência de memória disponível ao usuário. Basta fazer referência às rotinas internas de ocupação e devolução de nós da lista de espaço disponível; Em C/C++, as rotinas new() e delete() executam essa tarefa. Outras: malloc(), free(); Em Java, a única rotina para acomodar a tarefa de alocação de memória é: new().

14 Listas Encadeadas Nos algoritmos, usamos uma notação especial: A indicação do endereço de um nó, feita por um ponteiro, será representada pelo símbolo. Cada ponteiro utilizado é associado a um único tipo de nó; Assim, pt info representa o campo info do nó apontado por pt; pt prox representa o endereço do campo prox apontado por pt.

15 Listas Encadeadas Considere uma lista L. ptr Chave Nó Registro Próximo Como declarar um nó: declare No registro (chave: inteiro, prox: ponteiro de No); declare ptr: ponteiro No;

16 Listas Encadeadas Tipo de listas: Listas simplesmente encadeadas; Listas circulares; Listas duplamente encadeadas. Estruturas de dados que podemos utilizar: Listas; Pilhas; Filas.

17 Listas Simplesmente Encadeadas Qualquer estrutura, inclusive listas, que seja armazenada em alocação encadeada requer o uso de um ponteiro que indique o endereço de seu primeiro nó; O percurso de uma lista é feito a partir desse ponteiro. A idéia consiste em seguir, consecutivamente, pelos endereços existentes no campo que indica o próximo nó (semelhante ao índice da alocação seqüencial).

18 Listas Simplesmente Encadeadas Qualquer estrutura que usa alocação encadeada requer o uso de um ponteiro que indique o endereço de seu primeiro nó (elemento); O percurso em uma lista é feito a partir desse ponteiro;

19 Listas Simplesmente Encadeadas A idéia consiste em seguir pelos endereços existentes no campo que indica o próximo nó (semelhante ao índice da alocação seqüencial); Exemplo: percorrer uma lista para imprimir o campo chave.

20 Listas Simplesmente Encadeadas Ptr

21 Listas Simplesmente Encadeadas Algoritmo para imprimir os valores dos campos chave de todos os elementos na lista: procedimento Imprimir(ptr: ponteiro No) início declare pont ptr: ponteiro No; enquanto pont!= null faça escreva pont chave; pont pont prox; fim_enquanto fim

22 Listas Simplesmente Encadeadas Busca: Buscar em lista ordenada e em lista não ordenada; Se a lista possui elementos, percorrer a lista até que o elemento seja encontrado. Caso contrário, ou a lista está vazia, ou já percorremos toda e o elemento não foi encontrado; Deve ser eficiente.

23 Listas Simplesmente Encadeadas O ponteiro pont retorna com valor nulo caso o elemento são seja encontrado, caso contrário, retorna com um valor do endereço do elemento na memória. Ptr

24 Listas Simplesmente Encadeadas Algoritmo de busca em listas encadeadas: função ponteiro No Busca(ptr: ponteiro No, x: inteiro) início declare pont: ponteiro No; pont ptr; enquanto( pont!= null e pont chave!= x ) faça pont pont prox; fim_enquanto se( pont!= null ) então retorne pont; fim_se retorne null; fim

25 Listas Simplesmente Encadeadas Inserção: Após a realização da busca, a operação de inserção em uma lista encadeada é trivial; Três operações devem ser cumpridas: Alocação de memória para o novo elemento (nó); Utilização do nó; Acerto da lista.

26 Listas Simplesmente Encadeadas Algoritmo de inserção: Inserção no início; Inserção no fim; Inserção em uma lista ordenada.

27 Listas Simplesmente Encadeadas Inserção no início: procedimento InsereInicio(ptr: ponteiro No, int novo) início declare pont Busca(ptr, novo): ponteiro No; se( pont!= null) então escreva Elemento já existe. ; senão Alocar( pont ); pont chave novo; pont prox ptr; ptr pont; fim_se fim

28 Listas Simplesmente Encadeadas Queremos inserir o elemento novo = 8. Ptr

29 Listas Simplesmente Encadeadas Remoção: Como ocorre na inserção, após a realização da busca, a operação de remoção em uma lista encadeada é trivial; Três fases devem ser cumpridas: Utilização do nó (se for o caso); Acerto da lista; Desalocação de memória.

30 Listas Simplesmente Encadeadas Algoritmo de Remoção: Remoção no início; Remoção no fim; Remoção de qualquer elemento; Remoção em uma lista ordenada.

31 Listas Simplesmente Encadeadas Remoção no início: procedimento RemoveInicio(ptr: ponteiro No) início declare pont ptr; se( ptr!= null ) então ptr ptr prox; Desalocar( pont ); fim_se fim

32 Listas Simplesmente Encadeadas Queremos remover o elemento = 3. Ptr

33 Listas Circulares A busca em uma lista ordenada, vista anteriormente, pode ser considerada pouco eficiente quando comparada às outras buscas anteriormente mencionadas. Uma pequena modificação na estrutura física da lista pode ser de grande auxílio: Obrigar o último nó da lista a apontar para o nócabeça, criando uma lista circular encadeada.

34 Listas Circulares A B C D B 1 B 2 B 3 B n O último sempre deve apontar para o primeiro.

35 Listas Circulares Problema: o teste de fim de lista nunca é satisfeito; Solução: colocar a chave procurada no nó cabeça, de forma que uma resposta positiva seja sempre encontrada. Como ficam a busca, inserção e remoção? A busca é semelhante à lista simplesmente encadeada: o ponteiro pont tem o valor de null se o elemento não é encontrado.

36 Listas Duplamente Encadeadas A lista duplamente encadeada incorpora um novo campo de ponteiro; Os campos de ponteiros tomam os nomes de prev e prox (nó anterior e nó seguinte, respectivamente); Como fica a inicialização do nó cabeça? Os algoritmos de busca, inserção e remoção em tabelas ordenadas são muito simples; Na busca, a função retorna indicando o nó procurado ou, se este não foi encontrado, o nó que seria seu consecutivo.

37 Listas Duplamente Encadeadas A B C D B 1 B 2 B 3 B n

38 Listas Duplamente Encadeadas Busca em uma lista duplamente encadeada: função ponteiro No Busca(ptr: ponteiro No, x inteiro) início declare aux: ponteiro No; aux = ptr; enquanto( aux && aux chave!= x) faça aux = aux prox; fim_enquanto se ( aux!= null ) então retorne aux; fim_se retorne null; fim

39 Listas Duplamente Encadeadas Inserção no início da lista: procedimento InsereInicio(ptr: ponteiro No, x: inteiro) início declare novo: ponteiro No; Aloca(novo, x); se ( novo!= null ) então se( ptr == null ) então ptr = novo; senão novo prox = ptr; ptr prev = novo; ptr = novo; fim_se numelementos numelementos + 1;; fim_se fim

40 Listas Duplamente Encadeadas Remoção no início da lista: procedimento removeinicio(ptr: ponteiro No) Início declare aux: ponteiro No; se( ptr!= null ) aux = ptr; ptr = ptr prox; ptr prev = 0; Desaloca( aux ); numelementos numelementos 1; fim_se fim

41 Listas Duplamente Encadeadas Idéias de implementação: Para qualquer lista, seja ela simplesmente ou duplamente encadeada, podemos implementá-la sendo circular ou não; Além disso, podemos também implementar qualquer lista usando dois ponteiros; Além de um ponteiro que sempre aponta para o início da lista, podemos também controlar um ponteiro que sempre aponta para o final da lista; Isto é interessante tanto em listas simplesmente encadeadas quanto em listas duplamente encadeadas. Por que?

Estruturas de Dados II

Estruturas de Dados II Estruturas de Dados II Rodrigo Porfírio da Silva Sacchi [email protected] 3410-2086 Aula 2: Árvores http://www.do.ufgd.edu.br/rodrigosacchi Árvores Definição: Árvores Uma árvore T é um conjunto

Leia mais

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler

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

Leia mais

Estrutura de Dados Listas

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

Leia mais

Listas Lineares. continuando...

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,

Leia mais

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta

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

Leia mais

Aula 11 Pilha Dinâmica. prof Leticia Winkler

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

Leia mais

Lista: conceito, representação e algoritmos

Lista: 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 mais

Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados I Algoritmos e Estruturas de Dados I Aula 09 Revisão + Simulado Prof. Jesús P. Mena-Chalco [email protected] 1Q-2019 1 Vetores 2 Vetores 3 Vetores vetor 4 Vetores... vetor... 5 Ponteiros 6 Processo

Leia mais

Lista Encadeada (Linked List)

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

Leia mais

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 9

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

Leia mais

Estruturas de Dados Estruturas de Dados Fundamentais

Estruturas de Dados Estruturas de Dados Fundamentais Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando

Leia mais

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco

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

Leia mais

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 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 mais

ESTRUTURA DE DADOS FILAS DINÂMICAS

ESTRUTURA DE DADOS FILAS DINÂMICAS ESTRUTURA DE DADOS FILAS DINÂMICAS Prof. Dr. Daniel Caetano 202-2 Objetivos Compreender o conceito de encadeada Usar s dinâmicas para aplicações Conhecer as vantagens e desvantagens das s encadeadas Atividade

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

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

Leia mais

LINGUAGEM C: ALOCAÇÃO DINÂMICA

LINGUAGEM C: ALOCAÇÃO DINÂMICA LINGUAGEM C: ALOCAÇÃO DINÂMICA Prof. André Backes DEFINIÇÃO Sempre que escrevemos um programa, é preciso reservar espaço para as informações que serão processadas. Para isso utilizamos as variáveis Uma

Leia mais

SCC Algoritmos e Estruturas de Dados I

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

Leia mais

Lista de Exercícios sobre Listas Implementadas por Encadeamento

Lista de Exercícios sobre Listas Implementadas por Encadeamento Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um

Leia mais

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0!

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0! Rafael D. Ribeiro, M.Sc. [email protected] http://www.rafaeldiasribeiro.com.br Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0! Fatorial de 0 = 1 Recursividade 1 Recursividade

Leia mais

Introdução a Programação. Listas Encadeadas

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

Leia mais

Fila. 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações

Fila. 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações Fila 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações Fila O que é? Para que serve? Modelos intuitivos de filas Linhas para comprar bilhetes de cinema

Leia mais

O que é um jogo digital?

O que é um jogo digital? O que é um jogo digital? Programa de Computador Dados Algoritmos Para que estudar Estrutura de Dados? Para manipular os dados dos programas usamos os ALGORITMOS e para organizar os dados da melhor forma

Leia mais

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas

Leia mais

S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas

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

Leia mais

Lista de Exercícios 04

Lista de Exercícios 04 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professor: Túlio Toffolo (www.decom.ufop.br/toffolo)

Leia mais

Aula 13: Listas encadeadas (estruturas lineares)

Aula 13: Listas encadeadas (estruturas lineares) Algoritmos e Estruturas de Dados I Aula 13: Listas encadeadas (estruturas lineares) Prof. Jesús P. Mena-Chalco [email protected] 1Q-2017 1 Estruturas (alguns autores usam o termo registro) 2 Linguagem

Leia mais

Algoritmos e Estrutura de Dados. Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira Listas Seqüenciais Estática Seqüencial É implementada usando um vetor Deve-se determinar qual a

Leia mais

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal Exercício Crie uma função que recebe o número de dias até um determinado evento e calcula e retorna o equivalente em meses, semanas e dias, sem usar vetor ou o conceito de vetor. Considerar que todos os

Leia mais

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

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

Leia mais

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 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 mais

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)

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

Leia mais

Listas Lineares Ordenadas

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

Leia mais

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha.

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha. 1 Estrutura de Dados II Pilha e Fila Pilha em C Definir o registro que representará cada elemento da pilha. No início a pilha estará vazia, logo o ponteiro topo tem o valor NULL. As operações de inserção

Leia mais

Aula 07: Algoritmos de busca e Listas encadeadas

Aula 07: Algoritmos de busca e Listas encadeadas BC1424 Algoritmos e Estruturas de Dados I Aula 07: Algoritmos de busca e Listas encadeadas Prof. Jesús P. Mena-Chalco [email protected] 1Q-2016 1 Busca de um elemento 2 Exemplo: Busca de um elemento

Leia mais

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas

Leia mais

C com introdução a OO

C com introdução a OO ... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro

Leia mais

A linguagem C permite dois tipos de alocação de memória: Alocação estática e alocação dinâmica.

A linguagem C permite dois tipos de alocação de memória: Alocação estática e alocação dinâmica. Alocação de Memória Todo programa precisa utilizar memória para ser executado. Quando um programa inicia sua execução, ele começa a solicitar memória ao sistema operacional, ou seja, faz a alocação de

Leia mais

1. Listas sequenciais versus listas ligadas. Lista sequencial

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

Leia mais

L I C R P * * V O * * A * A F * * * * *

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]

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

Leia mais

Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011

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

Leia mais

Linguagem C: Listas Encadeadas

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

Leia mais

BCC202 - Estrutura de Dados I

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:

Leia mais

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução Introdução Gerência de Memória (Aula 18) Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será

Leia mais

Algoritmos e Estruturas de dados

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

Leia mais

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I

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

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas 7. Pilhas 8.

2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas 7. Pilhas 8. Profa. Dra. Laura Rodríguez E-mail: [email protected] Universidade da Madeira 1. Introdução 2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas

Leia mais

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011 Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores 14/03/2011 e 16/03/2011 Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto

Leia mais

Pilhas e Filas. Nádia Félix e Hebert Coelho

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

Leia mais

22/08/2011. Fila. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Fila. O que é? Para que serve?

22/08/2011. Fila. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Fila. O que é? Para que serve? Fila SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Fila O que é? Para que serve? 2 1 Biblioteca Problema: automação de uma biblioteca Todos os livros devem ser cadastrados O sistema

Leia mais

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória Alocação Dinâmica de Memória Luiz Chaimowicz, Raquel O. Prates, Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados II DCC UFMG Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática

Leia mais

10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa

10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa 10.1 Aula 10: Pilhas O conceito de pilha Algoritmos de inserção e remoção Exemplo: Notação Polonesa 10.2 Pilhas Uso eficiente de listas: inserções e remoções não devem acarretar movimentação de nós. A

Leia mais

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Notas da Aula 7 - Fundamentos de Sistemas Operacionais Notas da Aula 7 - Fundamentos de Sistemas Operacionais 1. Organização de um Processo em Memória Quando um processo é criado, o SO aloca uma porção da memória física da máquina para a criação do espaço

Leia mais

Lista com descritor (continuação)

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ó

Leia mais

Estrutura de Dados. Aula 07 Alocação Dinâmica

Estrutura de Dados. Aula 07 Alocação Dinâmica Estrutura de Dados Aula 07 Alocação Dinâmica 2 ALOCAÇÃO DINÂMICA Existem três modos de reservar espaço de memória para o armazenamento de informações: 1ª - através do uso de variáveis globais (e estáticas).

Leia mais

Universidade de São Paulo

Universidade de São Paulo Universidade de São Paulo Instituto de Ciências Matemáticas e Computação SCE5763 - Tipos e Estrutura de Dados - Luis Gustavo Nonato 2 a Lista de Exercícios 1. Seja A um array de inteiros. Escreva algoritmos

Leia mais

Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas

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

Leia mais

Quarta Lista de Exercícios Implementação e uso de Listas Encadeadas

Quarta Lista de Exercícios Implementação e uso de Listas Encadeadas 1 Objetivos Universidade Federal do Rio Grande do Norte epartamento de Informática e Matemática plicada IMp Prática de lgoritmos e Estrutura de ados I IM0426 Umberto Souza da osta - 25/09/2007 Quarta Lista

Leia mais

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 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 mais

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 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

Leia mais

Modulo 12: alocação dinâmica de memória

Modulo 12: alocação dinâmica de memória PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 12: alocação dinâmica de memória Aura - Erick [email protected], [email protected] Roteiro porque e como utilizar a alocação dinâmica funções: malloc (

Leia mais