Estrutura de Dados e Outros Objetos Usando Java - Tradução da 4ª Edição
Cada capítulo fornece uma revisão sintática e com os aspectos básicos de um programa orientado a objeto, transmitindo aos estudantes a base para o entendimento de importantes conceitos de programação. Com este framework, eles serão capazes de realizar a escrita de estrutura de dados funcionais, utilizando um método de cinco passos para trabalhar com o tipo de dado: entender o tipo de dado abstrato; escrever sua especificação; utilizar o tipo de dado; projetar e implementar; e analisar a execução. Os estudantes aprendem a analisar analiticamente a eficiência e eficácia do projeto, enquanto ganham exposição em bibliotecas úteis de classes Java.
VITRINE Os TOP de vendas !!
Quem viu este produto , comprou
-
Guia de Certificação em Java - Exame CX 310-035
VITRINE Os TOP de vendas !!
Este Guia de Certificação em Java é um livro fundamental para preparar os candidatos ao exame de programador Java da Sun, a primeira e mais requisitada certificação desta tecnologia. Cada um dos tópicos do exame são apresentados de forma clara e direcionada às dificuldades que podem ser encontradas na prova. ... Ler mais +
QUERO VER -
Arquitetura de Sistemas para WEB com Java Utilizando Design Patterns e Frameworks
VITRINE Os TOP de vendas !!
-
Sistemas Operacionais com Java - 8ª Edição
VITRINE Os TOP de vendas !!
-
VITRINE Os TOP de vendas !!
Esteja você interessado em aprender sobre integração com AJAX2, desenvolvimento voltado a extensões (plug-ins), ou apenas em construir aplicativos web de qualidade, não consigo pensar em ninguém melhor que Ian para ser seu guia. ... Ler mais +
QUERO VER -
Projetando Web Services com a Plataforma J2EE 1.4 - tecnologia JAX , RPC , SOAP , e XML
VITRINE Os TOP de vendas !!
-
VITRINE Os TOP de vendas !!
-
Guia Completo de estudos para Certificação em Java 2
VITRINE Os TOP de vendas !!
-
OCA/OCP Java SE 7 Guia de Estudo do Programador I & II (Exames 1Z0-803 & 1Z0-804)
VITRINE Os TOP de vendas !!
-
Orientação a Objetos na Prática - Aprendendo Orientação A Objetos com Java Orientação a Objetos na
VITRINE Os TOP de vendas !!
-
Explorando Elasticsearch com Java - Introdução ao desenvolvimento para Big Data
VITRINE Os TOP de vendas !!
Quem viu este produto , também se interessou
-
Ant em Ação - 2ª Edição de Java Development com Ant Ant em Ação - 2ª Edição de Java Development com
VITRINE Os TOP de vendas !!
Semana do Consumidor
-
VITRINE Os TOP de vendas !!
-
Persistência no Spring com Hibernate
VITRINE Os TOP de vendas !!
Este livro não só ensinará as funcionalidades do Spring 3 e do Hibernate 3.5, mas também guiará você pelos passos essenciais da construção de uma aplicação real – atendendo a armadilhas e considerações comuns ao longo do caminho. Nós apresentaremos melhores práticas e truques que aprendemos ao longo de anos de experiência prática e que você também pode aplicar em seus próprios projetos. Como bônus, você também aprenderá sobre dois empolgantes projetos de estado da arte construídos sobre o Spring e o Hibernate: o Grails e o Roo. ... Ler mais +
QUERO VER -
Arquitetura de Sistemas para WEB com Java Utilizando Design Patterns e Frameworks
VITRINE Os TOP de vendas !!
-
Guia de Certificação em Java - Exame CX 310-035
VITRINE Os TOP de vendas !!
Este Guia de Certificação em Java é um livro fundamental para preparar os candidatos ao exame de programador Java da Sun, a primeira e mais requisitada certificação desta tecnologia. Cada um dos tópicos do exame são apresentados de forma clara e direcionada às dificuldades que podem ser encontradas na prova. ... Ler mais +
QUERO VER -
Java Simplificado Java Simplificado Java Simplificado Java Simplificado
VITRINE Os TOP de vendas !!
-
OCA/OCP Java SE 7 Guia de Estudo do Programador I & II (Exames 1Z0-803 & 1Z0-804)
VITRINE Os TOP de vendas !!
-
Java Persistence com Hibernate (Edição revisada e ampliada de Hibernate em Ação)
VITRINE Os TOP de vendas !!
Java Persistence com Hibernate explora o Hibernate desenvolvendo uma aplicação que une centenas de exemplos individuais. O leitor irá imediatamente aprofundar-se no rico modelo de programação do Hibernate 3.2 e do Java Persistence, trabalhando bastante com consultas, estratégias de recuperação, cacheamento, transações, conversações e muito mais. Poderá também apreciar a bem-ilustrada discussão de boas práticas em projetos de bancos de dados, mapeamento objeto/relacional e técnicas de otimização. Nesta edição revisada do grande sucesso Hibernate em Ação, os autores Christian Bauer e Gavin King – fundador do projeto Hibernate – abordam o Hibernate 3.2 em detalhes junto com os padrões EJB 3.0 e Java Persistence. O livro finaliza em uma cobertura detalhada do JBoss Seam, um revolucionário framework de aplicação web para Java EE que se baseia nos conceitos EJB 3.0, JavaServer Faces e Hibernate. ... Ler mais +
QUERO VER -
VITRINE Os TOP de vendas !!
Esteja você interessado em aprender sobre integração com AJAX2, desenvolvimento voltado a extensões (plug-ins), ou apenas em construir aplicativos web de qualidade, não consigo pensar em ninguém melhor que Ian para ser seu guia. ... Ler mais +
QUERO VER -
VITRINE Os TOP de vendas !!
-
Aprendendo Java por meio de Conceitos e Exemplos Aprendendo Java por meio de Conceitos e Exemplos
VITRINE Os TOP de vendas !!
-
Projetando Web Services com a Plataforma J2EE 1.4 - tecnologia JAX , RPC , SOAP , e XML
VITRINE Os TOP de vendas !!
-
VITRINE Os TOP de vendas !!
- DescriçãoEstrutura de Dados e Outros Objetos Usando Java - Tradução da 4ª Edição
“Estrutura de Dados e Outros Objetos Usando Java” é uma introdução gradual do compilador “Just-in-Time” para um curso de Cs2.
Cada capítulo fornece uma revisão sintática e com os aspectos básicos de um programa orientado a objeto, transmitindo aos estudantes a base para o entendimento de importantes conceitos de programação. Com este framework, eles serão capazes de realizar a escrita de estrutura de dados funcionais, utilizando um método de cinco passos para trabalhar com o tipo de dado: entender o tipo de dado abstrato; escrever sua especificação; utilizar o tipo de dado; projetar e implementar; e analisar a execução. Os estudantes aprendem a analisar analiticamente a eficiência e eficácia do projeto, enquanto ganham exposição em bibliotecas úteis de classes Java.
A Flexibilidade da obra permite aos instrutores planejar suas aulas com certa ênfase na cobertura inicial de recursão e classificação, ou acelerar o ritmo do curso.
O programa Orientado a Objeto é enfatizado até o início e cobertura completa de classes Java;
Mostra aos estudantes como escrever Applets Java para testar estruturas de dados recém-implementadas.
Conjuntos de Projetos de Programação estão incluídos em cada capítulo.
Cada capítulo fornece uma revisão com os aspectos fundamentais de um programa orientado a objeto e uma revisão de sintaxe. - Sobre o Autor
- Especificação
Características
Tipo de Livro Livro Físico Especificações
Sobre o Autor Michael Main
Michael Main é um Professor associado do Departamento de Ciência da Computação da Universidade do Colorado – Boulder. Conquistou seu BS (Bacharelado), MS (Mestrado) e Ph.D na Universidade Estadual de Washington.Informações Técnicas Sumário
Capítulo 1: Fases do Desenvolvimento de Software -1
1.1 Especificação, Projeto, Implementação - 4
Técnica de Projeto: Decomposição do Problema - 5
Como Escrever uma Especificação para um Método de Java - 7
Dica de Programação - 10
Conversão de Temperatura: Implementação - 11
Dica de Programação - 13
Dica de Programação - 13
Dica de Programação - 14
Dica de Programação - 14
Exercícios de Autoteste para a Seção 1.1 - 15
1.2 Análise de Tempo de Exceção - 17
O Problema da Contagem de Degraus de uma - 17
Notação O Maiúsculo - 22
Análise Temporal de Métodos de Java - 24
Análises de Pior Caso, Caso Médio e Melhor Caso - 25
Exercícios de Autoteste para a Seção 1.2 - 26
1.3 Teste de Depuração - 27
Como Escolher Dados de Teste - 27
Valores de Fronteira - 27
Código Completamente Explorado - 29
Armadilha - 29
Uso de um Depurador - 30
Instruções Assert - 30
Como Ativar e Desativar Instruções Assert - 31
Dica de Programação - 32
Armadilha - 35
Ferramentas de Verificação Estática - 35
Exercícios de Autoteste para a Seção 1.3 - 35
Resumo do Capítulo - 36
Solução dos Exercícios de Autoteste - 37
Capítulo 2: Classes Java e Ocultação de Informação - 39
2.1 Classes e Seus Membros - 41
Exemplo de Programação: Classe Throttle - 41
Como Definir uma Nova Classe - 42
Variáveis de Instância - 42
Construtores - 43
Construtores Sem Argumentos - 45
Métodos - 45
Métodos Acessadores - 45
Dica de Programação - 46
Armadilha - 46
Dica de Programação - 47
Métodos Modificadores - 47
Armadilha - 49
Definição Completa de Throttle.java - 50
Métodos Podem Ativar Outros Métodos - 52
Exercícios de Autoteste para a Seção 2.1 - 53
2.2 Como Usar Uma Classe - 53
Como Criar e Usar Objetos 54
Um Programa com Vários Objetos Throttle - 55
Referências Null - 56
Armadilha - 57
Instruções de Atribuição com Variáveis de Referência - 57
Clones - 60
Teste de Igualdade - 60
Controvérsia de Terminologia: “Throttle a que t Faz Referência” - 61
Exercícios de Autoteste para a Seção 2.2 - 61
2.3 Pacotes - 62
Como Declarar um Package - 63
Declaração de Importação Para Usar um Pacote - 65
Pacotes de JCL - 65
Mais Sobre Acessos Público, Privado e de Pacote - 66
Exercícios de Autoteste para a Seção 2.3 - 67
2.4 Parâmetros, Métodos Equals e Clones - 68
Classe Location - 68
Métodos Estáticos - 74
Parâmetros Que São Objetos - 75
Métodos Podem Acessar Variáveis de Instância Privadas de Objetos em Sua Própria Classe - 77
O Valor de Retorno de um Método Pode Ser Um Objeto - 77
Dica de Programação - 79
Tipo Object de Java - 79
Como usar e implementar um Método equals - 79
Armadilha - 82
Toda Classe tem um Método equals - 82
Como Usar e Implementar um Método Clone - 83
Armadilha - 84
Dica de Programação - 87
Dica de Programação - 87
Programa de Demonstração Para a Classe Location - 88
O Que Acontece Quando um Parâmetro é Alterado Dentro de um Método? - 88
Exercícios de Autoteste Para a Seção 2.4 - 92
2.5 Bibliotecas de Classes de Java - 93
Resumo do Capítulo - 96
Solução dos Exercícios de Autoteste - 97
Projetos de Programação - 99
Capítulo 3: Classes de Coleções - 109
3.1 Revisão de Arrays em Java - 110
Armadilha - 112
Comprimento de um Array - 112
Declarações de Atribuição com Arrays - 113
Clones de Arrays - 114
Classe Útil de Arrays - 115
Arrays como Parâmetros - 116
Dica de Programação - 117
Exercícios de para a Seção 3.1 - 118
3.2 ADT para Bag de Inteiros - 120
ADT Bag - Especificação - 120
OutOfMemoryError e Outras Limitações para Classes de Coleções - 124
Classe IntArrayBag - Especificação - 125
Classe IntArrayBag - Programa de Demonstração - 129
Classe IntArrayBag - Projeto - 132
O Invariante de um ADT - 133
ADT de IntArrayBag - Implementação - 134
Dica de Programação - 144
ADT de Bag - Juntando as Peças - 144
Dica de Programação - 149
ADT de Bag - Teste - 149
Armadilha - 150
ADT de Bag - Análise - 150
Exercícios de Autoteste para a Seção 3.2 - 152
3.3 Projeto de Programação: ADT de Sequence - 153
ADT de Sequence - Especificação - 153
ADT de Sequence - Documentação - 158
ADT de Sequence - Projeto - 158
ADT de Sequence - Pseudocódigo para a Implementação - 164
Exercícios de Autoteste para a Seção 3.3 - 167
3.4 Projeto de Programação: Polinômio - 168
Exercícios de Autoteste para a Seção 3.4 - 170
3.5 HashSet e Iteradores de Java - 170
Classe HashSet - 170
Alguns dos Membros de HashSet - 171
Iteradores - 171
Armadilha - 172
Iteradores Inválidos - 173
Armadilha - 173
Exercícios de Autoteste para a Seção 3.5 - 173
Resumo do Capítulo - 174
Solução dos Exercícios de Autoteste - 175
Projetos de Programação - 179
Capítulo 4: Listas Ligadas - 185
4.1 Fundamentos de Listas Ligadas - 186
Declarando uma Classe com Nós - 187
Nós Cabeça, Nós Cauda - 187
A Referência Nula - 188
Armadilha - 189
Exercícios de Auto-Teste para a Seção 4.1 - 189
4.2 Métodos para Manipulação de Nós - 190
Construtor para a Classe Node - 190
Obtendo e Definindo Data e Link de um Nó - 191
Instância de Variáveis Públicas Versus Privadas - 192
Adicionando um Novo Nó na Cabeça de uma Lista Ligada - 192
Removendo um Nó A Partir da Cabeça de uma Lista Ligada - 194
Adicionando um Novo Nó Que Não Está na Cabeça - 195
Removendo um Nó que Não Está na Cabeça - 198
Armadilha - 201
Exercícios de Auto-Teste para a Seção 4.2 - 201
4.3 Manipulando uma Lista Ligada Inteira - 202
Calculando o Comprimento de uma Lista Ligada - 203
Dica de Programação - 206
Armadilha - 207
Procurando por um Elemento em uma Lista Ligada - 207
Encontrando um Nó por sua Posição em uma Lista Encadeada - 208
Copiando uma Lista Ligada - 210
Um Segundo Método de Cópia, Retornando Referências de Cabeça e Cauda - 214
Dica de Programação - 215
Copiando Parte de uma Lista Ligada - 216
Usando Listas Ligadas - 217
Exercícios de Auto-Teste para a Seção 4.3 - 224
4.4 O Bag ADT Com Lista Ligada - 225
Nosso Segundo Bag — Especificação - 225
O Método grab - 228
Nosso Segundo Bag — Declaração da Classe - 228
O Segundo Bag — Implementação - 229
Dica de Programação - 232
Dica de Programação - 234
O Segundo Bag — Juntando as Peças - 238
Exercícios de Auto-Teste para a Seção 4.4 - 241
4.5 Projeto de Programação: A Sequência ADT com uma Lista Ligada - 242
A Sequência ADT Revisada — Sugestões de Projeto - 242
A Sequência ADT Revisada — Método Clone - 244
Exercícios de Auto-Teste para a Seção 4.5 - 248
4.6 Além de Simples Listas Ligadas - 248
Arrays Versus Listas Ligadas e Listas Duplamente Vinculadas - 248
Nós Falsos - 249
Classes de Lista Java - 250
ListIterators - 251
Tomando uma Decisão - 252
Exercícios de Auto-Teste para a Seção 4.6 - 253
Resumo do Capítulo - 254
Soluções para os Exercícios de Auto-Teste - 255
Projetos de Programação - 259
Capítulo 5: Programação Genérica - 263
5.1 Tipo Object do Java e Calsses Wapper - 264
Conversões Ampliadoras - 265
Conversões Redutoras - 265
Classes Wrapper - 268
Conversões Autoboxing e Auto-Unboxing - 268
Vantagens e Desvantagens de Objetos Wrapper - 269
Exercícios de Auto-Teste para a Seção 5.1 - 269
5.2 Método de Objetos e Método Genéricos - 270
Métodos de Objetos - 271
Métodos Genéricos - 271
Armadilha - 272
Exercícios de Auto-Teste para a Seção 5.2 - 273
5.3 Classes Genéricas - 274
Escrevendo uma Classe Genérica - 274
Usando uma Classe Genérica - 274
Armadilha - 275
Detalhes Sobre a Implementação de uma Classe Genérica - 275
Criando um Array para Armazenar Elementos de Tipo Desconhecido - 275
Recuperando Objetos E do Array - 276
Avisos em Código Genérico - 276
Dica de Programação - 277
Usando ArrayBag Como o Tipo de Parâmetro ou Valor de Retorno - 278
Contando as Ocorrências de um Objeto - 278
A Coleção é Realmente uma Coleção de Referências a Objetos - 279
Definindo Referências Não Utilizadas Como Nulas - 280
Passos Para Conversão de uma Classe de Coleção Para uma Classe Genérica - 281
Clones Profundos para Classes de Coleção - 283
Usando o Saco de Objetos - 291
Detalhes da História - Escrevendo o Programa - 294
Exercícios de Auto-Teste para a Seção 5.3 - 294
5.4 Nós Genéricos - 295
Nós que Contêm Dados de Objetos - 295
Armadilha - 295
Outras Coleções que Usam Listas Ligadas - 297
Exercícios de Auto-Teste para a Seção 5.4 - 297
5.5 Interfaces e Iterators - 298
Interfaces - 298
Como Escrever uma Classe que Implementa uma Interface - 299
Interfaces Genéricas e a Interface Iterable - 299
Como Escrever uma Classe Genérica que implementa uma Interface Genérica - 300
A Classe Lister - 303
Armadilha - 304
A Interface Genérica Comparable - 304
Parâmetros que Usam Interfaces - 305
Usando instanceof Para Testar Se Uma Classe Implementa uma Interface - 306
A Interface Cloneable - 307
Exercícios de Auto-Teste para a Seção 5.5 - 307
5.6 Uma Classe de Saco Genérica que Implementa a Interface Iterable (Seção Opcional) - 308
Dica de Programação - 309
Dica de Programação - 310
Implementação de um Saco de Objetos Usando uma Lista Encadeada e um Iterator - 310
Resumo das Quatro Implementações para Bag - 311
Exercícios de Auto-Teste para a Seção 5.6 - 311
5.7 A Interface Java Collection e Interface MAP (Seção Opcional) - 311
A Interface Collection - 312
A Interface Map e a Classe TreeMap - 312
A Classe TreeMap - 313
O Programa de Contagem de Palavras - 317
Resumo do Capítulo - 321
Soluções para os Exercícios de Auto-Teste - 322
Projetos de Programação - 325
Capítulo 6: Pilhas - 327
6.1 Introdução a Pilhas - 328
Classe Stack - Especificação - 329
Implementação de uma Pilha Genérica - 331
Programa de Exmeplo: Inversão de uma Palavra - 331
Exercícios de Autoteste para a Seção 6.1 - 332
6.2 Aplicações de Pilhas - 333
Programa de Exemplo: Parênteses Casados - 333
Dica de Programação - 336
Cálculo de Expressões Aritméticas - 337
Cálculo de Expressões Aritméticas - Especificação - 337
Cálculo de Expressões Aritméticas - Projeto - 337
Implementação do Método Evaluate - 341
Cálculo de Expressões Aritméticas - Testes e Análises - 345
Cálculo de Expressões Aritméticas - Melhorias - 346
Exercícios de Autoteste para a Seção 6.2 - 346
6.3 Implementação do ADT de Pilha - 346
Implementação de uma Pilha com Array - 347
Implementação de uma Pilha com Lista Ligada - 353
Discussão da Implementação de Pilha com Lista Ligada - 354
Exercícios de Autoteste para a Seção 6.3 - 357
6.4 Aplicações mais Complexas de Pilhas - 357
Avaliação de Expressões Pós-fixas - 357
Tradução de Notação Infixa em Pós-fixa - 361
Uso de Regras de Precedência na Expressão Infixa - 363
Correção da Conversão de Infixa em Pós-fixa - 366
Exercícios de Autoteste Para a Seção 6.4 - 367
Resumo do Capítulo - 368
Solução dos Exercícios de Autoteste - 369
Projetos de Programação - 371
Capítulo 7: Filas - 375
7.1 Introdução às Filas - 376
Classe Queue - 377
Usos de Filas - 379
Exercícios de Autoteste para a Seção 7.1 - 380
7.2 Aplicações de Filas - 381
Filas de Java - 381
Programa de Exemplo: Palíndromos - 381
Programa de Exemplo: Simulação da Lavagem de Carros - 384
Simulação da Lavagem de Carros - Especificação - 385
Simulação da Lavagem de Carros - Projeto - 385
Simulação da Lavagem de Carros - Implementação das Classes de Lavagem de Carros - 389
Simulação da Lavagem de Carros - Implementação do Método de Simulação - 390
Exercícios de Autoteste para a Seção 7.2 - 390
7.3 Implementações da Classe Fila - 399
Implementação de uma Fila com Array - 399
Dica de Programação - 402
Implementação de uma Fila com Lista Ligada - 409
Dica de Programação - 414
Exercícios de Autoteste para a Seção 7.3 - 415
7.4 Deques e Filas Prioritárias (Seção Opcional) - 415
Filas de Duas Pontas - 415
Filas de Prioridade - 416
ADT de Fila de Prioridades — Especificação - 417
Classe Fila de Prioridades — Uma Implementação que Usa uma Fila Ordinária - 418
ADT de Fila de Prioridades — Uma Implementação Direta - 420
Fila de Prioridade Java - 420
Exercícios de Autoteste para a Seção 7.4 - 420
Resumo do Capítulo - 421
Soluções para os Exercícios de Autoteste - 422
Projetos de Programação - 424
Capítulo 8: Pensamento Recursivo - 429
8.1 Métodos Recursivos - 430
Rastreamento de Chamadas Recursivas - 433
Programa de Exemplo: Extensão de writeVertical - 433
Exame Mais Atento da Recursão - 435
Forma Geral de um Método Recursivo Bem-Sucedido - 438
Exercícios de Autoteste para a Seção 8.1 - 439
8.2 Estudos de Recursão: Fractais e Labirintos - 440
Programa de Exemplo: Geração de Fractais Aleatórios - 440
Um Método Para Geração de Fractais Aleatórios - Especificação - 441
Caso de Parada para a Geração de um Fractal Aleatório - 445
Inclusão do Método para Geração de Fractal Aleatório em um Applet - 446
Programa de Exemplo: Travessia de um Labirinto - 449
Travessia de um Labirinto - Especificação - 449
Travessia de um Labirinto - Projeto - 452
Travessia de um Labirinto - Implementação - 453
O Padrão Recursivo de Busca Exaustiva com Retrocesso - 455
Programa de Exemplo: Jogo do Urso de Pelúcia - 457
Exercícios de Autoteste para a Seção 8.2 - 458
8.3 Análise da Recursão - 459
Como Garantir que, no Caso Geral, Não Há Recursão Infinita - 463
Sequência de Chamadas Recursivas - 464
Análise Indutiva da Correção de um Método Recursivo - 465
Exercícios de Autoteste para a Seção 8.3 - 467
Resumo do Capítulo - 467
Soluções para os Exercícios de Autoteste - 468
Projetos de Programação - 470
Capítulo 9: Árvores - 477
9.1 Introdução a Árvores - 478
Árvores Binárias - 478
Árvores Taxonômicas Binárias - 481
Mais de Dois Filhos - 482
Exercícios de Autoteste para a Seção 9.1 - 483
9.2 Representações de Árvores - 483
Representação de Árvores Binárias Completas como Arrays - 483
Representação de uma Árvore Binária com uma Classe Genérica para Nós - 485
Esta implementação tem dado char em cada nó - 486
Esta implementação tem dado de um parâmetro de tipo genérico - 486
Exercícios de Autoteste para a Seção 9.2 - 487
9.3 Uma Classe para Nós de Árvores Binária - 488
Programa de Exemplo: Adivinhação de Animais - 497
Programa de Adivinhação de Animais - Projeto e Implementação - 499
Programa de Adivinhação de Animais - Melhorias - 504
Exercícios de Autoteste para a Seção 9.3 - 504
9.4 Varreduras de Árvores - 507
Varreduras de Árvores Binárias - 507
Impressão de uma Árvore com Indentação para Mostrar Profundidade - 512
BTNode, IntBTNode e Outras Classes - 521
Exercícios de Autoteste para a Seção 9.4 - 521
9.5 Árvores de Buscas Binárias - 522
A Árvore de Busca Binária Armazena Regras - 522
Versão de Saco Com Árvore de Busca Binária - Implementação de Alguns Métodos Simples - 528
Contagem das Ocorrências de um Elemento em uma Árvore de Busca Binária - 529
Adição de um Novo Elemento a uma Árvore de Busca Binária - 530
Remoção de um Elemento de uma Árvore de Busca Binária - 531
Métodos addAll, addMany e union - 535
Armadilha - 536
Implementação de addAll - 537
Análise Temporal e um Iterador Interno - 538
Exercícios de Autoteste para a Seção 9.5 - 538
Resumo do Capítulo - 539
Solução dos Exercícios de Autoteste - 540
Projetos de Programação - 543
Capítulo 10: Projetos de Árvores - 547
10.1 Heaps - 548
Regras de Armazenamento em Heap - 548
Classe de Fila de Prioridades com Heaps - 550
Adição de um Elemento a um Heap - 550
Remoção de um Elemento de um Heap - 552
Exercícios de Autoteste para a Seção 10.1 - 554
10.2 Árvores B - 555
O Problema de Árvores Desequilibradas - 555
Regras para Árvore B - 556
Um Exemplo de Árvore B - 557
Classe Conjunto com Árvores B - 557
Busca de um Elemento em uma Árvore B - 563
Dica de Programação - 565
Adição de um Elemento a uma Árvore B - 565
Operação de Adição Relaxada para uma Árvore B - 565
Método Privado para Correção de Excesso em um Filho - 567
De Volta ao Método add - 569
Estratégia de Projeto Top-Down - 570
Remoção de um Elemento de uma Árvore B - 571
Remoção Relaxada de uma Árvore B - 572
Método Privado para Correção de Escassez em um Filho - 574
Remoção do Maior Elemento de uma Árvore B - 576
Dica de Programação - 577
Árvores B Externas - 577
Exercícios de Autoteste para a Seção 10.2 - 579
10.3 Suporte de Árvores em Java - 579
DefaultMutableTreeNode, de javax.swing.tree - 579
Uso da classe JTree para exibir uma árvore em um Applet - 579
Classe JApplet - 580
Dica de Programação - 580
O que Exibe o Applet TreeExample - 580
Exercícios de Autoteste para a Seção 10.3 - 581
10.4 Árvores, Logaritmos e Análise Temporal - 585
Análise temporal para árvores de buscas binárias - 586
Análise Temporal para Heaps - 587
Logaritmos - 589
Algoritmos Logarítmicos - 590
Exercícios de Autoteste para a Seção 10.4 - 590
Resumo do Capítulo - 591
Soluções para os Exercícios de Autoteste - 592
Projetos de Programação - 594
Capítulo 11: Busca - 595
11.1 Busca Serial E Busca Binária 5 - 96
Busca Serial - 596
Busca Serial – Análise - 596
Busca Binária - 599
Busca Binária – Projeto - 600
Armadilha - 602
Busca Binária — Análise - 603
Métodos de Busca Binária de Java - 607
Exercícios de Autoteste para a Seção 11.1 - 609
11.2 Espalhamento de Endereçamento Aberto - 609
Introdução a Espalhamento - 610
Chaves Não Inteiras e Método hashCode de Java - 612
Armadilha - 613
ADT de Table — Especificação - 613
ADT de Table — Projeto - 615
ADT de Table — Implementação - 617
Ilustração Prática de Espalhamento de Endereçamento Aberto - 623
Escolha de uma Função de Espalhamento para Reduzir Colisões - 624
Duplo Espalhamento para Reduzir Agrupamento - 625
Exercícios de Autoteste para a Seção 11.2 - 627
11.3 Uso da Classe Hashtable de Java - 627
11.4 Espalhamento Encadeado - 628
Exercícios de Autoteste para a Seção 11.4 - 630
11.5 Projeto de Programação: Uma Classe Table Implementada com Vector E LinkedList de Java - 631
Uma Nova Classe Table - 631
Estruturas de Dados para a Classe NewTable - 632
Implementação da Classe NewTable - 633
Exercícios de Autoteste para a Seção 11.5 - 634
11.6 Análise Temporal do Espalhamento - 634
Fator de Carga de uma Tabela de Espalhamento - 636
Exercícios de Autoteste para a Seção 11.6 - 639
Resumo do Capítulo - 639
Solução para os Exercícios de Autoteste - 640
Projetos de Programação - 643
Capítulo 12: Ordenação - 645
12.1 Algoritmos de Ordenação com Tempo Quatrático - 646
Selectionsort—Especificação - 646
Selectionsort—Projeto - 647
Selectionsort—Teste - 651
Selectionsort—Análise - 651
Dica de Programação - 653
Insertionsort - 653
Insertionsort—Análise - 657
Exercícios de Autoteste para a Seção 12.1 - 660
12.2 Algoritmos de Ordenação Recursiva - 660
Dividir para Conquistar Usando Recursão - 660
Mergesort - 661
Função merge - 662
Mergesort—Análise - 668
Mergesort para Arquivos - 670
Quicksort - 671
Método Partition - 673
Quicksort—Análise - 677
Quicksort—Escolha de um Bom Elemento Pivô - 678
Exercícios de Autoteste para a Seção 12.2 - 678
12.3 Um Algoritmo O(n log n) que usa Heap - 679
Heapsort - 679
Construção do Heap - 686
Recuperação Descendente de Heap - 688
Heapsort—Análise - 688
Exercício de Autoteste para a Seção 12.3 - 690
12.4 Métodos Sort de Java - 690
Exercícios de Autoteste para a Seção 12.4 - 690
12.5 Ordenações Recursivas Paralelas - 691
Mergesort com Limiar - 691
Armadilha - 692
Classe RecursiveAction de Java - 692
Construtor de Sorter - 693
Método compute de Sorter - 694
Dica de Programação - 695
Uso de ForkJoinPool para Iniciar Recursão Paralela - 695
Além da Simples Classe Sorter - 698
Exercícios de Autoteste para a Seção 12.5 - 698
Resumo do Capítulo - 699
Solução dos Exercícios de Autoteste - 700
Projetos de Programação 702
Capítulo 13: Reuso de Software Com Classes Estendidas - 707
13.1 Classes Estendidas - 708
Como Declarar uma Classe Estendida - 710
Construtores de uma Classe Estendida - 711
Como Usar uma Classe Estendida - 713
Descendentes e Ancestrais - 714
Como Sobrescrever Métodos Herdados - 715
Valores de Retorno Covariantes - 716
Conversões Ampliadoras para Classes Estendidas - 717
Conversões Redutoras para Classes Estendidas - 718
Exercícios de Autoteste para a Seção 13.1 - 719
13.2 Parâmetros de Tipo Genérico e Herança - 719
Exercício de Autoteste para a Seção 13.2 - 721
13.3 Simulação de um Ecossistema - 721
Dica de Programação - 722
Implementação de Parte da Hierarquia de Objetos para Organismos - 722
Classe Organism - 722
Amostra de Diálogo - 725
Classe Animal: Uma Classe Estendida com Novas Variáveis de Instância Privadas - 726
Como Prover um Novo Construtor para uma Classe Estendida - 727
Outros Métodos de Animal - 728
Exercícios de Autoteste para o Meio da Seção 13.3 - 729
Classe Herbivore - 733
Programa de Simulação da Vida no Lago - 736
Vida no Lago—Detalhes da Implementação - 741
Uso do Modelo do Lago - 741
Exercícios de Autoteste para a Seção 13.3 - 742
13.4 Classes Abstratas e uma Classe Game - 743
Introdução à Classe AbstractGame - 743
Métodos Protegidos - 749
Métodos Finais - 749
Métodos Abstratos - 749
Classe Estendida para Jogar Conecte Quatro - 750
Variáveis-Membro Privadas da Classe Connect Four - 751
Três Métodos de Connect Four que Lidam com o Estado do Jogo - 753
Três Métodos de Connect Four que Lidam com Movimentos - 754
Método clone - 755
Como Escrever Suas Próprias Classes de Jogos Derivadas da Classe AbstractGame - 756
Exercícios de Autoteste para a Seção 13.4 - 757
Resumo do Capítulo - 757
Leitura Adicional - 757
Solução dos Exercícios de Autoteste - 758
Projetos de Programação - 760
Capítulo 14: Grafos - 761
14.1 Definições de Grafos - 762
Grafos Não Direcionados - 762
Exemplo de Programação: Grafos de Estados Não Direcionados - 763
Grafos Direcionados - 766
Terminologia Adicional de Grafos - 767
Exemplo de Rotas Aéreas - 768
Exercícios de Autoteste para a Seção 14.1 769
14.2 Implementações de Grafos - 769
Como Representar Grafos por uma Matriz de Adjacência - 769
Como Usar um Array Bidimensional para Armazenar Uma Matriz de Adjacência - 770
Como Representar Grafos por Listas de Ramos - 771
Como Representar Grafos por Conjuntos de Ramos - 772
Qual é a Melhor Representação? - 772
Exmpelo de Programação: ADT para Grafo Rotulado - 773
Construtor para Graph e Método size - 774
Métodos para Manipulação de Ramos - 775
Métodos para Manipulação de Rótulos de Vértices - 776
ADT para Grafo Rotulado— Implementação - 776
Exercícios de Autoteste para a Seção 14.2 - 781
14.3 Varredura de Grafos - 782
Busca em Profundidade - 783
Busca em Largura - 786
Busca em Profundidade—Implementação - 788
Busca em Largura—Implementação - 790
Exercícios de Autoteste para a Seção 14.3 - 791
14.4 Algoritmos de Rota - 792
Como Determinar se Uma Rota Existe - 792
Grafos com Ramos Ponderados - 792
Algoritmo da Menor Distância - 793
Algoritmo da Rota Mais Curta - 802
Exercícios de Autoteste para a Seção 14.4 - 803
Resumo do Capítulo - 804
Solução dos Exercícios de Autoteste - 805
Projetos de Programação - 807
Apêndices
Apêndice A Tipos Primitivos de Java e Overflow Aritmético - 809
Apêndice B Entrada e Saída em Java - 813
Apêndice C Lançamento e Captura de Exceções de Java - 819
Apêndice D Classes ArrayList, Vector, Hashtable e HashMap - 825
Apêndice E Uma Classe para Nós em uma Lista Ligada - 829
Apêndice F Uma Classe para uma Coleção de Objetos - 839
Apêndice G Mais Sobre a Notação O Maiúsculo - 847
Apêndice H Javadoc - 849
Apêndice I Applets para Testagem Interativa - 857
Índice Remissivo - 859Informações Técnicas
Nº de páginas: 904 Origem: Importado Editora: Editora Ciência Moderna Idioma: Português Edição: 4ª Edição Ano: 2015 ISBN: 9788539904457 Encadernação: Brochura Autor: Michael Main - Informações