Listas Lineares Duplamente Encadeada (LLDE)

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

Download "Listas Lineares Duplamente Encadeada (LLDE)"

Transcrição

1 Listas Lineares Duplamente Encadeada (LLDE) Nas listas com descritores vistas anteriormente a operação de remoção do último nó apresenta a necessidade de percorrer os nós seqüencialmente, a partir do primeiro elemento, até chegarmos ao penúltimo nó. Para se evitar esse percurso, é possível estruturar uma lista de forma que possa ser percorrida em ambos os sentidos (do início até o fim e do fim até o início). Uma organização implementando esse tipo de percurso é denominada lista duplamente encadeada. Esquematicamente podemos representar uma Lista Linear Duplamente Encadeada (LLDE) como: Prim Qtd 3 Últ Maria José Pedro Cada nó de uma lista desse tipo possui pelo menos três campos. Um campo ponteiro indicando o próximo nó, outro ponteiro indicando o nó anterior e o terceiro campo conto os dados. Os tipos em Pascal para manter uma LLDECD podem ser definidos como: Type TInfo=string; PNo=^TNo; TNo=record Esq, Dir: PNo; Info: Tinfo TDescritor=record Prim, Ult: PNo; Qtd: word Lista: TDescritor; Iniciação de uma LLDECD: procedure IniciaLLDECD( L: TDescritor) with L do Prin:=nil; Ult:=nil; Qtd:=0 1

2 Inserção de um nó no início da lista: Exercícios: procedure InsereInicioLLDECD( L:TDescritor; Val: TInfo); p: PNo; new(p); p^.esq:=nil; p^.info:=val; p^.dir:=l.prim; L.Ult:=p L.Prim^.Esq:=p; L.Prim:=p; inc(l.qtd) Responda: numa representação de uma LLDE sempre é possível se dizer que: p é igual a p^.dir^.esq e é igual a p^.esq^.dir.? Faça uma rotina para inserir um nó no fim da lista. Rotina para remover o primeiro nó da lista: function RemoveInicioLLDECD( L: TDescritor; Val: TInfo): boolean; p: PNo; RemoveInicioLLDECD:=false p:=l.prim; L.Prim:=p^.Dir; dec(l.qtd); L.Ult:=nil L.Prim^.Esq:=nil; Val:=p^.Info; dispose(p); RemoveInicioLLDECD:=true Trecho da inclusão de um nó entre dois nós (o nó antes do ponto de inclusão é indicado pelo ponteiro q): new(p); p^.esq:=q; p^.info:=val; p^.dir:=q^.dir; q^.dir:=p; p^.dir^.esq:=p; 2

3 Trecho para excluir um nó entre dois outros ( o nó a ser excluído é indicado pelo ponteiro p): p^.esq^.dir:=p^.dir; p^.dir^.esq:=p^.esq; Val:=p^.Info; dispose(p); Remoção do último nó da lista: function RemoveUltimoLLDECD( L: TDescritor; Val: TInfo): boolean; p: PNo; RemoveUltimoLLDECD:=false p:=l.ult; L.Ult:=p^.Esq; dec(l.qtd); L.Prim:=nil L.Ult^.Dir:=nil; Val:=p^.Info; dispose(p); RemoveUltimoLLDECD:=true Obs.: note que na rotina acima não há mais a necessidade de se percorrer a lista desde o início para se encontrar o penúltimo nó. Listas Circulares Duplamente Encadeadas com Descritor (LCDECD) Neste tipo de lista o campo Dir do último nó indica o ereço do primeiro nó e o campo da Esq do primeiro nó contém o ereço do último nó. O descritor para este tipo de lista tem o seguinte formato: Type TInfo=string; PNo=^TNo; TNo=record Esq, Dir: PNo; Info: Tinfo TDescritor=record Prim: PNo; Qtd: word Lista: TDescritor; Note acima que não há necessidade do campo Ult. 3

4 Inicia uma LCDECD vazia: procedure InicioLCDECD( L: TDescritor); with L do Qtd:=0; Prim:=nil Prim Qtd 0 Representação de LCDECD com apenas um nó: Prim Qtd 1 Representação de LCDECD com três nós: Prim Qtd 3 Maria José Pedro Exercícios: 1. Crie as rotinas para manipular LCDECD. 2. Polinômios podem ser representados por listas, cujos nós são registros com 3 campos: coeficiente, expoente e referência ao nó seguinte. Por exemplo, o polinômio 3x 5 +2x+1=0 pode ser representado por: Poli Crie uma rotina para ler um polinômio em uma lista a partir do teclado. Crie uma rotina que some dois polinômios. Crie uma rotina para multiplicar dois polinômios. 3. Faça um programa que leia um arquivo texto e carregue cada linha em um nó de uma lista linear duplamente encadeada com descritor. Após o arquivo estar completamente lido, as setas sobe e desce podem ser usadas para mostrar uma linha do texto armazenado na lista. A tecla sobe serve para mostrar a linha acima da linha atualmente so mostrada, a tecla desce mostra a abaixo da linha atual. 4

5 Alocação dinâmica com GetMem Alocação de um vetor com tamanho determinado durante a execução. uses WinCRT; (*$R-*) const MaximoIndice=65528; type TipoElementoVetor=longint; TVet= array [1..1] of TipoElementoVetor; Vet: ^TVet; N, i: 1..MaximoIndice; Write('Digite o numero de elementos do vetor: '); ReadLn(N); (* Aloca memoria dinamicamente *) GetMem(Vet, N*SizeOf(TipoElementoVetor)); for i:=1 to N do Vet^[i]:=i; for i:=1 to N do WriteLn(Vet^[i]); (* Libera memoria *) FreeMem(Vet, N*SizeOf(TipoElementoVetor));. Alocação de uma matriz com tamanho determinado durante a execução. uses WinCRT; const MaxIndice=1000; type Indice= 1..MaxIndice; TipoElementoMatriz= real; Vetor= array [Indice] of TipoElementoMatriz; Matriz= array [Indice] of ^Vetor; Mat: ^Matriz; m, n, i, j: Indice; EspacoNecessario: longint; Write('Digite o numero de linhas da matriz: '); ReadLn(m); Write('Digite o numero de colunas da matriz: '); ReadLn(n); Writeln(MemAvail); if n*sizeof(tipoelementomatriz) mod 4 > 0 then (* verifica alinhamento *) EspacoNecessario:=2 (* ajusta o alinhamento *) EspacoNecessario:=0; (* já está alinhado *) EspacoNecessario:=longint(m)*(n*SizeOf(TipoElementoMatriz)+4+EspacoNecessario)+12; 5

6 if EspacoNecessario > MaxAvail then WriteLn('Nao existe memoria suficiente para esta matriz!'); Halt(4); (* Aloca o espaço para os ponteiros de cada linha *) GetMem(Mat, m*sizeof(mat)); (* Aloca o espaço para os dados de cada linha *) for i:=1 to m do GetMem(Mat^[i], n*sizeof(tipoelementomatriz)); (* Atribui dados *) for i:=1 to m do for j:=1 to n do Mat^[i]^[j]:=i*1000+j; (* Mostra os dados *) for i:=1 to m do for j:=1 to n do Write(Mat^[i]^[j]:15:0); Writeln (* Libera as linhas *) for i:=1 to m do FreeMem(Mat^[i], n*sizeof(tipoelementomatriz)); (* Libera os ponteiros para as linhas *) FreeMem(Mat, m*sizeof(mat)); Writeln(MemAvail);. Exercício: faça um programa que leia um arquivo e o coloque em uma lista duplamente encadeada. Cada nó da lista deve ter além dos ponteiros normais (próximo e anterior) um outro ponteiro do tipo PString (ponteiro para string). Cada linha quando for lida do arquivo deve ser colocada em uma String normal, em seguida deve-se proceder a alocação dinâmica do nó da lista e da área para alojar tal String. Veja abaixo a representação de uma lista desse tipo criada a partir de um arquivo com três linhas de texto. Observe que o tamanho do espaço de memória de cada linha depe no número de caracteres lidos. Linha 1 do arquivo Linha 2 Última linha 6

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

Ponteiros em Pascal. Variáveis ponteiros são aquelas que. Declaração em Pascal: var ptint: ^integer; {ponteiro para uma variável inteira } real} 1

Ponteiros em Pascal. Variáveis ponteiros são aquelas que. Declaração em Pascal: var ptint: ^integer; {ponteiro para uma variável inteira } real} 1 Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal: var ptint: ^integer; {ponteiro para uma variável inteira

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

Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares)

Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares) Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares) 1. Refaça todos os itens do exercício 1 da Lista de Exercícios anterior (Listas

Leia mais

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string Pascal -Cabeçalho do programa Áreas do programa -Área de declarações -Corpo do programa - label - const - type - var - procedure - function - integer - real - byte - boolean - char - string Program

Leia mais

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

Lista Ligada Linear - Retirar elemento

Lista Ligada Linear - Retirar elemento Lista Ligada Linear - Retirar elemento Pretende-se retirar o elemento com valor h da lista: Para isso é necessário modificar o valor do ponteiro para a caixa anterior à do elemento a ser retirado da lista:

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

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2

Leia mais

Programação II. Aula 1

Programação II. Aula 1 Programação II Aula 1 Ponteiros Variáveis Variáveis estáticas Variáveis dinâmicas Podem ser criadas e destruídas durante a execução de um programa. Declaração -> Indireta Vinculação -> Por meio de ponteiros

Leia mais

Texto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site (autor: desconhecido).

Texto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site   (autor: desconhecido). Texto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site http://www.portaldaprogramacao.com (autor: desconhecido). Leitura indicada: Notas de Aula de Algoritmos e Programação

Leia mais

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior Linguagem Pascal Prof. Antonio Almeida de Barros Junior 1 Linguagem Pascal Criada para ser uma ferramenta educacional (Década de 70); Prof. Niklaus Wirth (Universidade de Zurique); Blaise Pascal (Matemático

Leia mais

Exemplos. Alocação Dinâmica de Pilhas. Pilhas. Pilhas. Implementação Seqüencial X Encadeada. SCE 182 Algoritmos e Estruturas de Dados I

Exemplos. Alocação Dinâmica de Pilhas. Pilhas. Pilhas. Implementação Seqüencial X Encadeada. SCE 182 Algoritmos e Estruturas de Dados I SCE 182 Algoritmos e Estruturas de Dados I Uma pilha é uma lista linear em que a inserção ou eliminação de elementos somente pode ocorrer em uma das extremidades, que é chamada de TOPO da PILHA. D C B

Leia mais

Estrutura de Dados Polinómio

Estrutura de Dados Polinómio Estrutura de Dados Polinómio Estrutura de Dados: representação computacional + algorimos especializados Estrutura de Dados Polinómio P n (x) = nx a i x i i=0 Logo, Polinómio tem uma estrutura recorrente:

Leia mais

Capítulo V : Um Tipo Estruturado de Dados: o array

Capítulo V : Um Tipo Estruturado de Dados: o array Capítulo V : A Linguagem Pascal Um Tipo Estruturado de Dados: o array 1 _ Capítulo V : Um Tipo Estruturado de Dados: o array Ex1: Vector, Variável com um índice, Tabela unidimensional. var x : array [0..7]

Leia mais

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação 1I Prof. Osório Lista Linear Seqüencial (Alocação Estática) Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação

Leia mais

SCC Algoritmos e Estruturas de Dados I

SCC Algoritmos e Estruturas de Dados I SCC 202 - Algoritmos e Estruturas de Dados I Lista 4 de Exercícios (Listas Generalizadas, Listas Cruzadas) 1. Sobre listas generalizadas, responda os seguintes itens: (a) Quais suas vantagens? (b) Quais

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

LISTA DE EXERCÍCIOS 2

LISTA DE EXERCÍCIOS 2 UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO DE CIÊNCIA DA COMPUTAÇÃO PROGRAMAÇÃO DE COMPUTADORES 1. TIPOS COMPOSTOS DE DADOS LISTA DE EXERCÍCIOS 2 1. Considerando as declarações abaixo, responda dizendo

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

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas) Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01

Leia mais

Aula 20: Matrizes (Parte 2)

Aula 20: Matrizes (Parte 2) Aula 20: Matrizes (Parte 2) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Vetores Matrizes 2 / 15 Túlio Toffolo

Leia mais

PROGRAD / COSEAC Ciência da Computação Niterói - Gabarito

PROGRAD / COSEAC Ciência da Computação Niterói - Gabarito Prova de Conhecimentos Específicos 1 a QUESTÃO: (3,0 pontos) Faça um programa que leia linhas (strings) do teclado, até que a string lida seja vazia. Ao final, seu programa deve dizer quantas linhas foram

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

Árvores Binárias de Pesquisa (ABP) INF01203 Estruturas de Dados. Operações. Árvores Binárias de Pesquisa (ABP) Caminhamento Central à Esquerda

Árvores Binárias de Pesquisa (ABP) INF01203 Estruturas de Dados. Operações. Árvores Binárias de Pesquisa (ABP) Caminhamento Central à Esquerda Árvores Binárias de Pesquisa (ABP) INF03 Estruturas de Dados Árvores Binárias de Pesquisa apresentam uma relação de ordem entre os nodos ordem é definida por um campo denominado chave esq chave inf dir

Leia mais

Lista de Exercícios ICC 1 Ponteiros

Lista de Exercícios ICC 1 Ponteiros Lista de Exercícios ICC 1 Ponteiros Professor Cláudio Fabiano de Motta Toledo - Todos os exercícios devem ser resolvidos utilizando ponteiros, alocação dinâmica e aritmética de ponteiros. Não utilize variáveis

Leia mais

MC-102 Aula 20 Ponteiros III

MC-102 Aula 20 Ponteiros III MC-102 Aula 20 Ponteiros III Instituto de Computação Unicamp 20 de Outubro de 2016 Roteiro 1 Exemplo de Ponteiros e Alocação Dinâmica 2 Exercício 3 Informações Extras: Ponteiros para Ponteiros e Alocação

Leia mais

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; e-mail: sandra@icmc.usp.br Lista de Exercícios Árvores, Árvores Binárias, Árvores

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

Prof. Walteno Martins Parreira Júnior

Prof. Walteno Martins Parreira Júnior Licenciatura em Computação Algoritmos e Estrutura de Dados LISTAS LINEARES Prof. Walteno Martins Parreira Júnior www.waltenomartins.com.br waltenomartins@iftm.edu.br 2016 SUMÁRIO 1 - LISTAS LINEARES...

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

AULA 04. Ocupação Circular Listas com Descritor

AULA 04. Ocupação Circular Listas com Descritor AULA 04 Ocupação Circular Listas com Descritor Ocupação Circular Ocupação circular Final da LL Início da LL X 1 2 3 4 5 6 7 8 9 10 11 12 13 Ocupação circular utilizando parte do arranjo Final da LL Início

Leia mais

Considere uma máquina que utiliza uma palavra de 10 bits. Suponha o seguinte padrão de bits:

Considere uma máquina que utiliza uma palavra de 10 bits. Suponha o seguinte padrão de bits: PROVA DE CONHECIMENTOS ESPECÍFICOS 1 a QUESTÃO: (1, ponto) Representação binária Considere uma máquina que utiliza uma palavra de 1 bits. Suponha o seguinte padrão de bits: 1111. a) Indique o valor em

Leia mais

AULA 04 Ocupação Circular Listas com Descritor

AULA 04 Ocupação Circular Listas com Descritor UL 04 Ocupação Circular Listas com Descritor Ocupação Circular Ocupação circular Ocupação circular utilizando parte do arranjo Final da LL Início da LL Final da LL Início da LL 1 2 3 4 5 6 7 8 9 10 11

Leia mais

ESTRUTURA HOMOGÊNEA: VETORES/ARRAYS

ESTRUTURA HOMOGÊNEA: VETORES/ARRAYS Lógica de Programação Professora Lucélia ESTRUTURA HOMOGÊNEA: VETORES/ARRAYS Um vetor é um arranjo de elementos armazenados na Memória Principal, um após o outro, todos com o mesmo nome. A idéia é a mesma

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 tiago@ci.ufpb.br Conteúdos Abordados O Conceito de Listas Listas com Representação

Leia mais

Tabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015

Tabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015 Tabela Hash Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 15/05/2015 Introdução Seja um conjunto de chaves armazenadas em um vetor e em uma árvore AVL. Qual a complexidade

Leia mais

ALGORITMOS + PASCAL MATRIZES COM MAIS DE UMA DIMENSAO OU VETORES

ALGORITMOS + PASCAL MATRIZES COM MAIS DE UMA DIMENSAO OU VETORES ESTRUTURAS DE DADOS HOMOGÊNIAS MATRIZES COM MAIS DE UMA DIMENSAO OU VETORES Agora iremos aprender o uso de matrizes com duas dimensões, conhecidas também por matrizes bidimensionais ou arranjos (arrays).

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

UNIDADE III Estruturas de Dados Moderna Introdução à Árvores. Fonte: Cláudio Esperança e Eduardo Piveta

UNIDADE III Estruturas de Dados Moderna Introdução à Árvores. Fonte: Cláudio Esperança e Eduardo Piveta UNIDADE III Estruturas de Dados Moderna Introdução à Árvores Fonte: Cláudio Esperança e Eduardo Piveta Árvores As árvores são estruturas das mais usadas em computação para representar hierarquias Uma árvore

Leia mais

Exercícios. Resposta: a) var valor: real; i: integer. b)

Exercícios. Resposta: a) var valor: real; i: integer. b) Exercícios 1.Sabendo que a função frac retorna a parte fracionária de um número. Ex: frac(10.7) 0.7 Faça: a) Declare as iáveis do código abaixo. b) Escreva como seria a saída desse código na tela do computador.

Leia mais

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

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

Leia mais

Pilhas e Filas. Prof. Walteno Martins Parreira Júnior.

Pilhas e Filas. Prof. Walteno Martins Parreira Júnior. Licenciatura em Computação Algoritmos e Estrutura de Dados Pilhas e Filas Prof. Walteno Martins Parreira Júnior www.waltenomartins.com.br waltenomartins@iftm.edu.br 2016 SUMÁRIO 1. PILHAS... 2 1.1. Introdução...

Leia mais

1: unit ArvAVL; 2: { Unit que implementa uma arvore AVL } 3: interface 4: 5: type 6: Tipo_da_Chave = longint; 7: Tipo_do_Dado = record 8: Chave :

1: unit ArvAVL; 2: { Unit que implementa uma arvore AVL } 3: interface 4: 5: type 6: Tipo_da_Chave = longint; 7: Tipo_do_Dado = record 8: Chave : 1: unit ArvAVL; 2: { Unit que implementa uma arvore AVL } 3: interface 4: 5: type 6: Tipo_da_Chave = longint; 7: Tipo_do_Dado = record 8: Chave : Tipo_da_Chave; 9: Nome : string; 10: { Outras informacoes

Leia mais

4ª Lista de Exercícios de Programação I

4ª Lista de Exercícios de Programação I 4ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. 1. Faça um algoritmo que leia 10 valores inteiros armazenando-os em um vetor e depois calcule a soma dos valores

Leia mais

Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1

Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1 Sumário Sobre as Autoras ix Introdução xi 1 Sub-rotinas 1 1.1 Variáveis Globais e Locais 1 1.2 Passagem de Parâmetro (por valor por referência) 1 2 Vetores e Matrizes 7 2.1 Vetores 7 2.2 Matrizes 8 2.2.1

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

Refinamentos sucessivos

Refinamentos sucessivos Refinamentos sucessivos Objetivos: Estudar a técnica de refinamentos sucessivos Jogo: 2048 Implementaremos o jogo 2048, com o objetivo de estudar a manipulação dos elementos de uma matriz Utilizaremos

Leia mais

Aplicações de listas e outras estruturas

Aplicações de listas e outras estruturas 19/1/11 Aplicações de listas e outras estruturas SCC- Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long int)

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

PRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: ID: 25/04/2005. PARTE I Questões Objetivas

PRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: ID: 25/04/2005. PARTE I Questões Objetivas Universidade Federal do Rio Grande do Sul Instituto de Informática Bacharelado em Ciência da Computação/ Engenharia da Computação INF 01203 Estruturas de Dados Professora: Renata de Matos Galante PRIMEIRA

Leia mais

Algumas notas sobre PASCAL

Algumas notas sobre PASCAL Algumas notas sobre PASCAL PARTE I Anjolina Grisi de Oliveira 1 Um programa em PASCAL Esse texto inclui algumas notas sobre a linguagem PASCAL. As diferenças existentes entre os diversos compiladores não

Leia mais

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Não-terminais são nomes mnemônicos colocados entre parênteses angulares. Vocabulário terminal formado por

Leia mais

Matrizes esparsas: definição

Matrizes esparsas: definição Matrizes esparsas: definição o objetivo é mostrar os métodos de armazenamento e manipulação de matrizes esparsas esparsidade de uma matriz é a relação entre o número de elementos nulos de uma matriz e

Leia mais

Exercícios: Arquivos

Exercícios: Arquivos Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Arquivos 1. Codifique, compile e execute um programa que: (a) crie/abra

Leia mais

Árvores. Prof. César Melo DCC/ICE/UFAM

Á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

Leia mais

Laboratório de Programação A Exercícios sobre vetores e matrizes

Laboratório de Programação A Exercícios sobre vetores e matrizes Universidade Federal do Amazonas Instituto de Ciências Exatas Departamento de Ciência da Computação Laboratório de Programação A - 2011.1 Exercícios sobre vetores e matrizes Observação Esta lista será

Leia mais

Árvores Binárias de Busca (ABB) 18/11

Árvores Binárias de Busca (ABB) 18/11 Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:

Leia mais

Ponteiro e lista dinâmica

Ponteiro e lista dinâmica UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Ponteiro é uma variável que

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

Disciplina de Algoritmos e Programação. Vetor e Matriz

Disciplina de Algoritmos e Programação. Vetor e Matriz Disciplina de Algoritmos e Programação Vetor e Matriz Definição de Vetor Vetor é uma variável composta homogênea unidimensional Conjunto de variáveis de mesmo tipo que possuem mesmo identificador (nome)

Leia mais

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

Tabelas de dispersão/hash

Tabelas de dispersão/hash Tabelas de dispersão/hash 1 Tabelas de dispersão/hash 1. Considere uma tabela de hash de tamanho m = 1000 e a função de hash h(k)= [m.(k.a % 1)], com A=( 5-1)/2. Calcule os valores de hash das chaves 61,

Leia mais

Árvores. Prof. César Melo DCC/ICE/UFAM

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

Leia mais

MC-102 Aula 19 Ponteiros II

MC-102 Aula 19 Ponteiros II MC-102 Aula 19 Ponteiros II Instituto de Computação Unicamp 20 de Outubro de 2016 Roteiro 1 Ponteiros e Alocação Dinâmica 2 Exemplo de Alocação Dinâmica de Vetores 3 Erros Comuns ao Usar Alocação Dinâmica

Leia mais

4ª Lista de Exercícios de Programação I

4ª Lista de Exercícios de Programação I 4ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. 1. Faça um algoritmo que leia 10 valores inteiros armazenando-os em um vetor e depois calcule a soma dos valores

Leia mais

Faculdade de Computação

Faculdade de Computação Faculdade de Computação Programação Procedimental 13 Laboratório de Programação - Algoritmos Prof. Cláudio C. Rodrigues Prof. Fabíola Gonçalves I. Introdução a Arquivos A motivação para utilizar arquivos

Leia mais

1) Digitar o código-fonte no editor do compilador Turbo Pascal para windows, exatamente como apresentado a seguir:

1) Digitar o código-fonte no editor do compilador Turbo Pascal para windows, exatamente como apresentado a seguir: Introdução à Informática 1 de 6 Data: 29/05/04 1) Digitar o código-fonte no editor do compilador Turbo Pascal para windows, exatamente como apresentado a seguir: program eq2grau; uses WinCrt, Strings;

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

INF 1620 P2-01/11/03 Questão 1 Nome:

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,

Leia mais

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática Programação 1I Prof. Osório Listas simplesmente encadeadas Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática Programação II Disciplina:

Leia mais

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

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

Leia mais

Estrutura de Dados II

Estrutura de Dados II Estrutura de Dados II Introdução à Estrutura de Dados www.aeciocosta.com.br aecio.costa@faculdadeguararapes.edu.br Estrutura de Dados Estrutura de dados é um modo particular de armazenamento e organização

Leia mais

ESTRUTURA DE DADOS LISTAS LINEARES

ESTRUTURA DE DADOS LISTAS LINEARES ESTRUTURA DE DADOS LISTAS LINEARES Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender as listas sequenciais Implementar uma Lista Sequencial com Vetor Compreender o uso de listas sequenciais Material

Leia mais

Linguagem C Vetores, Matrizes e Strings

Linguagem C Vetores, Matrizes e Strings Linguagem C Vetores, Matrizes e Strings José Gustavo de Souza Paiva Vetores Também conhecidos como variáveis compostas homogêneas unidimensionais É um tipo de dado que representa um conjunto de valores

Leia mais

Árvores & Árvores Binárias

Á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

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

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 jesus.mena@ufabc.edu.br 1Q-2017 1 Estruturas (alguns autores usam o termo registro) 2 Linguagem

Leia mais

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que: Tabelas Hash Tabelas Hash O uso de listas ou árvores para organizar informações é interessante e produz bons resultados. Porem, em nenhuma dessas estruturas se obtém o acesso direto a alguma informação,

Leia mais

INF 1620 P3-29/06/04 Questão 1 Nome:

INF 1620 P3-29/06/04 Questão 1 Nome: INF 1620 P3-29/06/04 Questão 1 Considere um arquivo texto que descreve um conjunto de retângulos e círculos. Cada linha do arquivo contém a descrição de uma figura. O primeiro caractere da linha indica

Leia mais

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica) SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{

Leia mais

LINGUAGEM C: ARRAY: VETORES E MATRIZES

LINGUAGEM C: ARRAY: VETORES E MATRIZES LINGUAGEM C: ARRAY: VETORES E MATRIZES Prof. André Backes POR QUE USAR ARRAY? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor

Leia mais

Disciplina que estuda as técnicas computacionais para a organização e manipulação eficiente de quaisquer quantidades de informação.

Disciplina que estuda as técnicas computacionais para a organização e manipulação eficiente de quaisquer quantidades de informação. (VWUXWXUDVGH'DGRV 1. Introdução Disciplina que estuda as técnicas computacionais para a organização e manipulação eficiente de quaisquer quantidades de informação. Em um projeto de software, 2 aspectos

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS DISCIPLINA: Lab. de Programação PROF: MSc. Flávio Barros PERÍODO: 2 DATA: Aluno (s): 01 ATIVIDADE / / Revisão de Conteúdo

Leia mais

ÁRVORE BINÁRIA DE BUSCA

Á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

Leia mais

Módulo 18 - Tabelas de Dispersão. Referências

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

Estruturas de Dados Filas

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

Leia mais

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP Programação de Computadores 1 Lista 2 Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP 0.1 Vetores e Cadeias de Caracteres 1. Codifique um programa que leia e armazene duas notas de 10 alunos e calcule

Leia mais

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

Programando o Computador com PascaL: um ambiente para Auto-Aprendizagem.

Programando o Computador com PascaL: um ambiente para Auto-Aprendizagem. Programando o Computador com PascaL: um ambiente para Auto-Aprendizagem. Resolução dos desafios propostos no Capítulo 8 Resolução do Desafio 8.1 Resolução do Desafio 8.2 Fórmulas usadas na planilha: Para

Leia mais

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são: Apêndice A Classe Vector A classe Vector permite a representação de um vetor de dados de maneira similar à de um array, visto na disciplina Programação Orientada a Objetos I, mas com maior flexibilidade.

Leia mais

PRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: 22/09/2010

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

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18 ÍNDICE MÓDULO 1 INTRODUÇÃO À ALGORITMIA 11 1.1 PROGRAMAS E ALGORITMOS 12 Fases da programação 12 Algoritmos e algoritmia 13 Algoritmos em linguagem informal, pseudocódigo e fluxogramas 14 Símbolos utilizados

Leia mais

Estruturas de Dados I

Estruturas de Dados I Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2075 Aula 6: Listas Encadeadas e Alocação Dinâmica Listas Encadeadas e Alocação Dinâmica Alocação Seqüencial versus

Leia mais

Tipos de Dados Dinâmicos

Tipos de Dados Dinâmicos Tipos de Dados Dinâmicos Manipular uma lista de nomes de alunos: como? Tipo de dados Registo com: nome notas de trabalhos assiduidade nota final Representação para a Lista???? MP II, 2006/2007 p.1/20 Hipótese

Leia mais

Armazenamento em disco com uso de índices

Armazenamento em disco com uso de índices Armazenamento em disco com uso de índices Vimos até o momento árvores onde a chave aparenta ser o único objeto de interesse. Contudo, como sugere a representação de um nó, constante no slide 82, a chave

Leia mais

Aula 06 Introdução à Programação Matrizes

Aula 06 Introdução à Programação Matrizes Aula 06 Introdução à Programação Matrizes Prof. Gustavo Callou gustavo.callou@ufrpe.br gcallou@gmail.com Roteiro Matrizes Unidimensionais (Vetor) Bidimensionais String Exercícios Gustavo Callou DEINFO/UFRPE

Leia mais