TIPO ABSTRATO DE DADOS: LISTAS ENCADEADAS
|
|
|
- Renato Frade Deluca
- 9 Há anos
- Visualizações:
Transcrição
1 COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO TIPO ABSTRATO DE DADOS: LISTAS ENCADEADAS FOZ DO IGUAÇU 2013
2 i LISTA DE QUADROS QUADRO 1 DEFINIÇÃO DA CLASSE NO QUADRO 2 DEFINIÇÃO DA CLASSE DE LISTA ENCADEADA... 5 QUADRO 3 DEMONSTRAÇÃO DE UMA LISTA ENCADEADA... 7 QUADRO 4 LISTA ENCADEADA COM UMA CLASSE NO INTERNA QUADRO 5 LISTA ENCADEADA GENÉRICA... 9 QUADRO 6 DEFINIÇÃO DA CLASSE DE ENTRADA QUADRO 7 APLICAÇÃO USANDO LISTA ENCADEADA GENÉRICA... 14
3 ii SUMÁRIO 10 LISTAS TIPOS ABSTRATOS DE DADOS (TAD) TAD Lista Classe de Lista Encadeada A Classe Nó Classe Lista Encadeada Demonstração da Classe de Lista Encadeada Classe Nó Interna Classe Genérica de Lista Encadeada Classe Entrada para Dados de uma Lista Encadeada Genérica Demonstração de uma Lista Encadeada Genérica EXERCÍCIOS REFERÊNCIAS BIBLIOGRÁFICAS... 17
4 1 10 LISTAS O pacote java.util contém uma grande variedade de classes e interfaces que suportam uma ampla gama de funcionalidades. Por exemplo, a estrutura das coleções. Uma coleção é uma estrutura de dados na verdade, um objeto que pode conter referências a outros objetos. Normalmente, coleções contêm referências a objetos que são todos do mesmo tipo. A Tabela 1 lista algumas das interfaces do framework coleções. Interface Descrição Coleção A interface raiz na hierarquia de coleções a partir das quais as interfaces Conjunto, Fila e Lista são derivadas. Conjunto Uma coleção que não contém duplicatas. Lista Uma coleção ordenada que pode conter elementos duplicados. Mapa Uma coleção que associa chaves a valores e não podem conter chaves duplicadas. Fila Normalmente uma coleção first-in (primeiro a entrar), first-out (primeiro a sair). Tabela 1 Algumas interfaces do framework colletions TIPOS ABSTRATOS DE DADOS (TAD) Um tipo abstrato de dado (TAD) é um conjunto de objetos, juntamente com um conjunto de operações. Tipos abstratos de dados são abstrações matemáticas. Objetos tais como listas, conjuntos, e gráficos, juntamente com suas operações, podem ser vistos como tipos abstratos de dados, como números inteiros, reais e booleanos são tipos de dados.
5 TAD Lista Considere uma lista geral de forma A0, A1, A2,..., An-1. Onde o tamanho da lista é n. Se uma lista estiver vazia seu tamanho é 0 (zero). Para qualquer lista, exceto a lista vazia, Ai sucede Ai-1 (i <n) e que Ai-1 precede Ai (i> 0). O primeiro elemento da lista é A0, e o último elemento é An-1. A posição do elemento Ai em uma lista é i. Associado a estas definições um conjunto de operações é realizada na lista TAD, como: imprimir, esvaziar, procurar (retorna a posição da primeira ocorrência de um item), inserir e remover. Poderia ser acrescentadas ainda, operações como próxima e anterior, que retorna a posição do sucessor e predecessor, respectivamente Classe de Lista Encadeada Uma lista encadeada é uma estrutura de dados ligada que consiste numa cadeia única de nós, cada um está conectado ao seguinte por uma ligação. Este é o tipo mais simples de estrutura de dados encadeado, mas é, no entanto, amplamente utilizada. Figura 1 Exemplo de lista simplesmente encadeada. Fonte: A Figura 1 é um diagrama de uma lista encadeada. Em Java, um nó é um objeto de alguma classe nó. Cada nó tem um lugar (ou lugares) para alguns dados e um lugar para manter um link para outro nó. Os links são mostrados como setas que
6 3 apontam para o nó seguinte. Em Java, as ligações serão implementadas como referências a um nó armazenado em uma variável de instância do tipo de nó A Classe Nó A classe No1, no Quadro 1 é definida especificando, entre outras coisas, uma variável de instância do tipo No1 chamada link. Isto permite que cada nó armazene uma referência a outro nó do mesmo tipo. O primeiro nó em uma lista encadeada é chamado de nó cabeça. Começando no nó principal, é possível percorrer toda a lista encadeada, visitando cada nó exatamente uma vez. A cabeça é uma variável do tipo No1 que contém uma referência para o primeiro nó na lista encadeada isto é, uma referência para o nó principal. A função da variável cabeça é permitir que o código verifique o primeiro nó ou cabeça. Quadro 1 Definição da classe No1 1 package listaencadeada; 2 public class No1 { 3 private String item; 4 private int cont; 5 private No1 link;//um nó contém uma referência para outro nó. 6 public No1(){ 7 link = null; 8 item = null; 9 cont = 0; 10 } 11 public No1(String novoitem, int novocont, No1 valorlink){ 12 setdado(novoitem, novocont); 13 link = valorlink; 14 } 15 public void setdado(string novoitem, int novocont){ 16 item = novoitem;
7 4 17 cont = novocont; 18 } 19 public void setlink(no1 novolink){ 20 link = novolink; 21 } 22 public String getitem(){ 23 return item; 24 } 25 public int getcont(){ 26 return cont; 27 } 28 public No1 getlink(){ 29 return link; 30 } 31 } Classe Lista Encadeada Em Java, uma lista encadeada é um objeto. O Quadro 2 contém uma definição de uma classe de lista encadeada. Um objeto de lista encadeada não contém diretamente todos os nós da lista encadeada. Contém apenas a variável de instância head que faz uma referência ao primeiro nó. Cada nó pode ser alcançado a partir deste primeiro nó. A variável de instância link do primeiro e cada No1 da lista encadeada contém uma referência ao No1 seguinte na lista encadeada. Assim, as setas representadas na Figura 1 são compreendidas como referências em Java. Cada objeto do nó de uma lista encadeada contém (na sua variável de instância link) uma referência a outro objeto da classe No1, e este outro objeto contém uma referência a outro objeto da classe No1, e assim por diante até ao fim da lista encadeada.
8 5 Quadro 2 Definição da classe de lista encadeada 1 package listaencadeada; 2 public class ListaEncadeada1 { 3 private No1 head; 4 public ListaEncadeada1(){ 5 head = null; 6 } 7 /* 8 * Adiciona um nó no início da lista, com os dados especificados. 9 * O nó adicionado será o primeiro nó na lista. 10 */ 11 public void addinicio (String nomeitem, int contitem){ 12 head = new No1(nomeItem, contitem, head); 13 } 14 /* 15 * Remove o nó principal e retorna true se a lista contém pelo menos um nó. 16 * Retorna false se a lista está vazia. 17 */ 18 public boolean excluinohead(){ 19 if (head!= null){ 20 head = head.getlink(); 21 return true; 22 } 23 Else 24 return false; 25 } 26 public int tamanho(){ 27 int cont = 0; 28 No1 posicao = head; 29 while (posicao!= null){//o último nó é indicado pelo valor nulo. 30 cont++; 31 posicao = posicao.getlink();
9 6 32 } 33 return cont; 34 } 35 public boolean contem(string item){ 36 return (procura(item)!= null); 37 } 38 /* 39 * Localiza o primeiro nó que contém o item de destino, 40 * e retorna uma referência a esse nó. 41 * Se o alvo não estiver na lista, retorna nulo. 42 */ 43 private No1 procura(string alvo){ 44 No1 posicao = head; 45 String posicaoitem; 46 while (posicao!= null){ 47 posicaoitem = posicao.getitem(); 48 if (posicaoitem.equals(alvo)) 49 return posicao; 50 posicao = posicao.getlink(); 51 } 52 return null;//alvo não encontrado 53 } 54 public void imprimelista(){ 55 No1 posicao = head; 56 while (posicao!= null){ 57 System.out.println(posicao.getItem()+" " 58 + posicao.getcont()); 59 posicao = posicao.getlink(); 60 } 61 } 62 }
10 Demonstração da Classe de Lista Encadeada O Quadro 3 contém um programa simples que demonstra como alguns dos métodos na classe ListaEncadeada1 se comportam. Quadro 3 Demonstração de uma lista encadeada 1 package listaencadeada; 2 public class ListaEncadeadaDemo { 3 public static void main(string[] args) { 4 ListaEncadeada1 lista = new ListaEncadeada1(); 5 lista.addinicio("maçã", 1); 6 lista.addinicio("bananas", 2); 7 lista.addinicio("melão", 3); 8 System.out.println("A lista tem "+lista.tamanho() 9 +" nós"); 10 lista.imprimelista(); 11 if (lista.contem("melão")) 12 System.out.println("Melão está na lista."); 13 else 14 System.out.println("Melão não está na lista."); 15 lista.excluinohead(); 16 if (lista.contem("melão")) 17 System.out.println("Melão está na lista"); 18 else 19 System.out.println("Melão não está na lista"); 20 while (lista.excluinohead()); 21 System.out.println("Início da lista: "); 22 lista.imprimelista(); 23 System.out.println("Fim da lista."); 24 } 25 }
11 Classe Nó Interna É possível fazer uma lista encadeada, ou qualquer outra estrutura de dados semelhante, autossuficiente, tornando a classe nó uma classe interna. Fazendo, assim, a classe ListaEncadeada mais autônoma. O Quadro 4 apresenta a classe ListaEncadeada2 com um classe No interna. Quadro 4 Lista encadeada com uma classe No interna. public class ListaEncadeada2 { private class No {//início da classe No interna private String item; private No link; public No(){ link = null; item = null; } public No(String novoitem, No valorlink){ item = novoitem; link = valorlink; } }//fim da classe No interna private No head; public ListaEncadeada2(){ head = null; } Classe Genérica de Lista Encadeada O Quadro 5 mostra uma lista encadeada genérica com um parâmetro do tipo T para o tipo de dados armazenados em um nó. Esta lista genérica ligada tem os mesmos métodos, codificados basicamente da mesma forma, como a lista
12 9 encadeada do Quadro 4, mas foi utilizado um parâmetro de tipo para o tipo de dados dos nós. Quadro 5 Lista encadeada genérica 1 package listaencadeada; 2 public class ListaEncadeadaGenerica<T> { 3. private class No<T>{//classe No<T> interna 4 private T dado; 5 private No<T> link; 6 public No(){ 7 dado = null; 8 link = null; 9 } 10 public No(T novodado, No<T> valorlink){ 11 dado = novodado; 12 link = valorlink; 13 } 14 }//fim da classe No<T> interna 15 private No<T> head; 16 public ListaEncadeadaGenerica(){//construtor 17 head = null; 18 } 19 /* 20 * Adiciona um nó no início da lista, com os dados especificados. 21 * O nó adicionado será o primeiro nó na lista. 22 */ 23 public void addinicio(t itemdado){ 24 head = new No<T> (itemdado, head); 25 } 26 /* 27 * Remove o nó principal 28 * e retorna true se a lista contém pelo menos um nó. 29 * Retorna false se a lista está vazia. 30 */
13 10 31 public boolean excluino(){ 32 if (head!= null){ 33 head = head.link; 34 return true; 35 } 36 else 37 return false; 38 } 39 //Retorna o número de nós na lista. 40 public int tamanho(){ 41 int cont = 0; 42 No<T> posicao = head; 43 while (posicao!= null){ 44 cont++; 45 posicao = posicao.link; 46 } 47 return cont; 48 } 49 public boolean contem(t item){ 50 return (procura(item)!= null); 51 } 52 /* 53 * Localiza o primeiro nó que contém o item de destino, 54 * e retorna uma referência a esse nó. 55 * Se o alvo não estiver na lista, retorna nulo. 56 */ 57 private No procura(t alvo){ 58 No<T> posicao = head; 59 T posicaoitem; 60 while (posicao!= null){ 61 posicaoitem = posicao.dado; 62 //o tipo T deve ter um método equal bem definido para esse método funcionar.
14 11 63 if (posicaoitem.equals(alvo)) 64 return posicao; 65 posicao = posicao.link; 66 } 67 return null;//alvo não encontrado. 68 } 69 /* 70 * Localiza o primeiro nó que contém o alvo 71 * e retorna uma referência para os dados em que o nó. 72 * Se o alvo não estiver na lista, nulo é retornado. 73 */ 74 private T encontradado(t alvo){ 75 No<T> resultado = procura(alvo); 76 if (resultado == null) 77 return null; 78 Else 79 return resultado.dado; 80 } 81 public void imprimelista(){ 82 No<T> posicao = head; 83 while (posicao!= null){ 84 System.out.println(posicao.dado); 85 posicao = posicao.link; 86 } 87 } 88 public boolean vazio(){ 89 return (head == null); 90 } 91 public void limpa(){ 92 head = null; 93 } 94 /* 95 * Para duas listas serem iguais devem conter
15 12 96 * os mesmos itens de dados na mesma ordem. 97 * De igual modo T é usado para comparar itens de dados. 98 */ 99 public boolean igual(object outroobjeto){ 100 if (outroobjeto == null) 101 return false; 102 else if (getclass()!= outroobjeto.getclass()) 103 return false; 104 else { 105 ListaEncadeadaGenerica<T> outralista = 106 (ListaEncadeadaGenerica<T>) outroobjeto; 107 if (tamanho()!= outralista.tamanho()) 108 return false; 109 No<T> posicao = head; 110 No<T> outraposicao = outralista.head; 111 while (posicao!= null){ 112 if (! (posicao.dado.equals (outraposicao.dado)) ) 113 return false; 114 posicao = posicao.link; 115 outraposicao = outraposicao.link; 116 } 117 return true; 118 } 119 } 120 } A lista encadeada apresentada no Quadro 2 não tem um método igual, para manter os exemplos simples e não prejudicar a mensagem principal. No entanto, uma classe de lista encadeada normalmente deve ter um método igual. Existe mais que uma abordagem para a definição de um método igual para uma lista encadeada. Os mais óbvios são:
16 13 1. Duas listas encadeadas são iguais se contêm as mesmas entradas de dados (possivelmente em ordem diferente). 2. Duas listas encadeadas são iguais se contiverem as mesmas entradas de dados na mesma ordem, isto é, os dados do primeiro nó do objeto de chamada forem iguais ao de dados no primeiro nó da outra lista encadeada, os dados nos dois nós segundo são iguais, e assim por diante Classe Entrada para Dados de uma Lista Encadeada Genérica O programa de demonstração exibido no Quadro 7 usa a entrada da classe, definida no Quadro 6, como o tipo conectado para o parâmetro de tipo T. Quadro 6 Definição da classe de entrada 1 package listaencadeada; 2 public class Entrada { 3 private String item; 4 private int cont; 5 public Entrada(String itemdado, int contdado){ 6 item = itemdado; 7 cont = contdado; 8 } 9 public String tostring(){ 10 return (item + " "+ cont); 11 } 12 public boolean igual(object outroobjeto){ 13 if (outroobjeto == null) 14 return false; 15 else if (getclass()!= outroobjeto.getclass()) 16 return false; 17 else{ 18 Entrada outraentrada = (Entrada)outroObjeto; 19 return (item.equals(outraentrada.item)
17 14 20 && (cont == outraentrada.cont)); 21 } 22 } 23 } Quando da definição da classe ListaEncadeadaGenerica<T> no Quadro 5, o tipo de um nó é o No<T>, não é No. Se <T> for omitido, sua aplicação pode ou não receber uma mensagem de erro do compilador, dependendo de outros detalhes do código. O problema é que No realmente significa algo semelhante a um nó com dados tipo objeto, em vez de tipo de dados T. Se o compilador exibir uma mensagem de erro desconcertante, procure um <T> desaparecido. Às vezes, uma mensagem de aviso do compilador pode ser útil ao se cometer esse erro. Ao receber um aviso de que menciona uma conversão tipo de No a No<T>, procure uma <T> omitido Demonstração de uma Lista Encadeada Genérica A Quadro 7 demonstra o programa para uma lista encadeada genérica. Quadro 7 Aplicação usando lista encadeada genérica 1 package listaencadeada; 2 3 public class ListaEndadeadaGenericaDemo { 4 public static void main(string[] args) { 5 ListaEncadeadaGenerica<Entrada> lista = new ListaEncadeadaGenerica<Entrada>(); 6 Entrada entrada1 = new Entrada("Maçã", 1); 7 lista.addinicio(entrada1); 8 Entrada entrada2 = new Entrada("Banana", 2); 9 lista.addinicio(entrada2); 10 Entrada entrada3 = new Entrada("Melão", 3); 11 lista.addinicio(entrada3);
18 15 12 System.out.println("A lista tem "+lista.tamanho() 13 + " nós"); 14 lista.imprimelista(); 15 System.out.println("Fim da lista"); 16 } 17 } 10.2 EXERCÍCIOS 1. Qual a saída é produzida pelo seguinte código? ListaEncadeada1 lista = new ListaEncadeada1(); lista.addinicio( Torta de maçã, 1); lista.addinicio( Cachoro quente, 12); lista.addinicio( mostarda, 1); lista.imprimelista(); 2. Defina um método chamado Vazio a classe ListaEncadeada1 (Quadro 2), que retorna true se a lista estiver vazia e false se a lista tem pelo menos um nó nela. 3. Defina um método chamado Limpa a classe ListaEncadeada1 (Quadro2). O método não tem parâmetros e esvazia a lista. 4. Desenvolva um aplicativo chamado SimplesLivroApp que armazene números distintos de ISBN (por exemplo, integer) de alguns livros usando um lista encadeada e faça um método para exibi-los em ordem crescente. 5. Defina uma classe chamada Livro que armazene atributos como o título, número de ISBN, autor, edição, editora e ano de publicação. Forneça os métodos get e set nessa classe, para acessar esses atributos. Defina uma classe chamada LivroApp, que contém o método main. Nesta classe criar um livro alguns objetos com nomes distintos e armazene-os em uma lista encadeada. Desenvolva os seguintes métodos: Procurar por título Procurar por autor Procurar por editora
19 16 Cria uma classe Livro que Ordene por ordem crescente do ano de publicação (use um método de comparação dos dois objetos que retorne um valor booleano depois de comparar o ano de publicação dos dois objetos de livros). 6. Defina uma classe chamada Conta que contenha os atributos número da conta, nome do titular da conta, número de identificação do titular da conta, e ano de abertura de conta. Fornecer os métodos get e set desta classe para acessar os atributos. Defina uma classe chamada ContaApp, que contém o método main. Esta classe deve criar uma conta de alguns objetos com números de contas distintos e armazená-los em uma lista encadeada. O programa deve, então, pedir o número da conta como a entrada do console e exibir as informações de conta referente ao número de conta. 7. Defina uma classe chamada Aluno com três atributos, a saber, nome, curso e ano. Defina uma classe chamada EstudanteApp, que contém um método main. Crie objetos vários Estudantes com nomes diferentes, cursos, e ano (por exemplo, 2006, 2007). Adicione-os em uma lista encadeada. Crie métodos para: Exibir quantos alunos estão matriculados por determinado curso. Exibir quantos alunos se matricularam em determinado curso em um ano específico. 8. Dada uma lista, L, e outra lista, P, contendo inteiros classificados em ordem crescente. A operação printlots(l, P) vai imprimir os elementos em L que se encontram em posições especificadas pelo P. Por exemplo, se P = 1, 3, 4, 6, os elementos nas posições 1, 3, 4, e 6, em L são impressos. Escreva os método printlots(l, P). 9. (CVM 2010) Assinale a opção correta. a) Um nodo indicador de janelas armazena um valor especial chamado high window (HW). b) Um nodo prioritário é um nodo extra mantido sempre na posição mais acessada de uma lista encadeada. c) Um nodo cabeça é um nodo extra mantido sempre na primeira posição de uma lista encadeada. d) Um nodo sentinela autoriza o acesso a valores elevados chamados top values (TV). e) Um nodo cabeça armazena um valor especial chamado strong head (SH).
20 (PJ-PI 2009) Uma lista ligada é uma estrutura que corresponde a uma sequência lógica de entradas ou nós. Cada nó armazena a localização do próximo elemento na sequência, ou seja, de seu nó sucessor. Nessa estrutura, a) para estabelecer a ligação entre um nó já pertencente a uma lista e um novo nó, basta fazer com que o novo nó referencie no, camponext, o nó que anteriormente era referenciado pelo nó original, desde que esse campo não tenha o valor nulo. b) a existência de um ponteiro apontando para o 1º elemento e outro para o fim da lista permite que a inserção ou deleção de dados de um nó que esteja no meio da lista seja rapidamente executada. c) enquanto a entrada que determina o topo da lista é mantida em um nó descritor dessa lista, a entrada que marca o fim da lista é mantida fora do descritor. d) o armazenamento de uma lista requer uma área contígua de memória para permitir a otimização no processamento de criação e remoção de nós da lista. e) o armazenamento de uma lista não requer uma área contígua de memória. Como listas são estruturas dinâmicas, normalmente são definidos procedimentos que permitem criar e remover nós na memória. 11. Julgue se a afirmação abaixo é verdadeira ou falsa: ( ) A principal característica de uma lista encadeada é o fato de o último elemento da lista apontar para o elemento imediatamente anterior. 12. Desenvolva o projeto a seguir usando uma GUI. Considere-se um projetista que precisa desenvolver um sistema para automação da secretaria acadêmica de uma escola, com as seguintes necessidades. Cadastre em uma lista os nomes dos alunos, o curso atual, e quatro notas. O usuário do sistema pode querer saber: o Quantos alunos estão matriculados na escola. o Quantos alunos estão matriculados por curso. o A situação dos alunos por curso, se aprovados ou reprovados REFERÊNCIAS BIBLIOGRÁFICAS
21 18 DEITEL, Paul; DEITEL, Harvey. Java for Programmers. 2nd Ed. Boston: Pearson Education, Inc., 2012 SAVITCH, Walter. Absolute Java, 5ª ed. New Jersey: Pearson Education, WEISS, Mark A. Data Structures and Algorithm Analysis in Java, 3rd Ed. USA: Pearson2012
LISTA DUPLAMENTE ENCADEADA
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO LISTA DUPLAMENTE ENCADEADA FOZ DO IGUAÇU 2013 LISTA DE QUADROS QUADRO 1 EXEMPLO DE UM NÓ PARA
JAVA COLLECTIONS API: LISTAS
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO JAVA COLLECTIONS API: LISTAS FOZ DO IGUAÇU 2013 LISTA DE QUADROS QUADRO 1 EXEMPLO DE LIST,
PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA
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
Orientação a Objetos AULA 09
Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este
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
UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
4 Conceito de Herança
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
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
Linguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos
Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
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
Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
JAVA. Professor: Bruno Toledo
JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código
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
ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA
ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande LISTA LIGADA (LINKED LIST) É uma estrutura de dados em que
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
Programação Orientada a Objetos
Programação Orientada a Objetos Prof. Kléber de Oliveira Andrade [email protected] Coleções, Propriedades, Resources e Strings (Parte 2) Coleções É comum usarmos um objeto que armazena vários outros
Estruturas de Dados Encadeadas
CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos
Coleções. Prof. Marcelo Roberto Zorzan
Coleções Prof. Marcelo Roberto Zorzan Coleções Aula de Hoje Introdução Coleções podem representar estruturas de dados complexas de forma transparente para o programador. Exemplos: Músicas favoritas armazenadas
Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU
Aula 5 POO 1 Encapsulamento Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações
Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins
Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore
PROGRAMAÇÃO ORIENTADA A OBJETOS: CONSTRUTORES
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: CONSTRUTORES FOZ DO IGUAÇU 2013 LISTA DE FIGURAS FIGURA 1
AULA 6 - ARRAYS. Array de 10 elementos
1 AULA 6 - ARRAYS Arrays são objetos que armazenam diversas variáveis do mesmo tipo. Eles podem conter variáveis de referência primitivas ou de objeto, mas o array propriamente dito sempre será um objeto
Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual
Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções
Implementação de Genéricos, Iteradores Isabel Harb Manssour Porto Alegre, maio de 2006 Roteiro Implementação de Genéricos Coleções Conceito de Genérico Implementação Iteradores Conceito Utilização ForEach
FILAS. As coisas de que uma fila é feita serão chamadas itens. Os itens podem ser números, strings, structs, etc., etc.
KATIA LIMA FILAS RAFAEL DA SILVA REIAS JEFFERSON DA SILVA OLIVEIRA RAFFAELA LEITE SANTANA EXISTEM MUITOS EXEMPLOS DE FILA NO MUNDO REAL: UMA FILA DE BANCO; NO PONTO DE ÔNIBUS; UM GRUPO DE CARROS AGUARDANDO
Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
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
Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus
Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis
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,
Classes, instâncias e métodos de acesso. prática
Classes, instâncias e métodos de acesso prática Exercício 01 Crie a classe Ponto que possui duas dimensões (int x, int y). Crie os métodos get e set. Faça o main para instanciar e testar a classe. Adicione
Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;
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
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)
Visibilidade e Encapsulamento
Visibilidade e Encapsulamento Professor: Ricardo Luis dos Santos IFSUL 2016 Agenda Pacotes Visibilidade Encapsulamento Hands-On 2 Pacotes Em Java, a visibilidade ou grau de acesso a um determinado atributo
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
Algoritmos e estrutura de dados
Algoritmos e estrutura de dados Listas Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Listas Listas encadeadas
Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for
5 Arrays. 5.1 Criando um array. 5.2 Inicializando arrays. c:\>java Array Janeiro tem 31 dias.
5 Arrays Arrays são grupos de variáveis do mesmo tipo. As arrays podem armazenar variáveis de qualquer tipo (tipo de dado primitivo ou objetos), mas é importante lembrar que todos os valores devem ser
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS
Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
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
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:
Exercício de Estrutura de dados. Java Fila
Exercício de Estrutura de dados Java Fila Obs.: Esse projeto foi um exercício realizado em sala de aula da matéria de Estrutura de dados com o Profº Frederico Augusto Siqueira Gentil Aqui está sendo relatado
Comando de Seleção em Java
Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Comando de Seleção Comando de Seleção em Java Conteúdo 1. Introdução... 1 2. Comando de seleção... 2 3. Comandos
Vetores Unimensionais
Vetores Unimensionais Objetivos Entender a importância e a necessidade do uso de Vetores Definição de Manipulação de Vetores Inserir elementos em um vetor (usando laços ou não) Imprimir elementos de um
nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){
UNIVERSIDADE FEDERAL DE SANTA CATARINA - Departamento de Automação e Sistemas PROGRAMAÇÃO DE SISTEMAS AUTOMATIZADOS - 2016/2 - P2 Nome: ------------------------------------------------------------------------------------------------------
API e Coleções Java. Sérgio Luiz Ruivace Cerqueira
API e Coleções Java Sérgio Luiz Ruivace Cerqueira [email protected] Java API Introdução API Endereço http://download.oracle.com/javase/6/docs/api/ API - Descrição API - Resumo API - Detalhes Coleções
Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação
Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias
Programação Orientada por Objectos 2010/11. 2º Exame 28 de Junho de 2011
Programação Orientada por Objectos 2010/11 2º Exame 28 de Junho de 2011 Instruções (leia com cuidado): Escreva de forma CLARA o seu nome e número em todas as folhas. O exame contém 8 páginas dividido em
Lição 4 Fundamentos da programação
Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
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
Estruturas de Dados Pilhas, Filas, Listas
PMR2300 Escola Politécnica da Universidade de São Paulo Introdução Estruturas de dados são objetos que armazenam dados de forma eficiente, oferecendo certos serviços para o usuário (ordenação eficiente
Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a
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
Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Vetores Unimensionais
Vetores Unimensionais Objetivos Entender a importância e a necessidade do uso de Vetores Definição de Manipulação de Vetores Inserir elementos em um vetor (usando laços ou não) Imprimir elementos de um
Linguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Á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
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO
Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga
Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Professora Sheila Cáceres Sobrecarga (overloading) Na mesma classe podemos definir vários métodos com o mesmo nome Sobrecarga O tipo
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
Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos
Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos [email protected] Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;
4 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
Programação Orientada a Objetos Aula 4 Programação Orientada a Objetos Entrada e Saída de Dados GUI em Java: pacote Swing O exemplo abaixo emprega o pacote Swing (javax.swing), que emprega componentes
Universidade Estadual de Santa Cruz
Universidade Estadual de Santa Cruz Departamento de Ciências Exatas e Tecnológicas DCET Bacharelado em Ciência da Computação Professor: Esbel Tomás Valero Orellana Linguagem de Programação III Introdução
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
Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010
Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade
Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }
Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos
Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.
Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira [email protected] Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados
Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Lista de exercícios 6 Exercícios sobre repetição 1. Escreva um método que lê via teclado 8 números e retorna
AULA TEÓRICA 7 Tema 7. Colecções (cont.) Vector Ø Criação Ø Manipulação
AULA TEÓRICA 7 Tema 7. Colecções (cont.) Vector Ø Criação Ø Manipulação 1 Vector Os vectores são semelhantes aos arrays, pois também podem conter um conjunto de objectos aos quais é atribuído um índice.
Á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:
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
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
