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

VITRINE Os TOP de vendas !!

+-

Quem viu este produto , comprou

Quem viu este produto , também se interessou

  • Descrição
    Estrutura 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 LivroLivro 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écnicasSumá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 - 859

    Informaçõ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

Avaliação técnica sobre o livro

Olá! Seja Bem Vindo (a)!

Eu sou o Moderninho , o Mascote da Ciência Moderna Online!
Além de bonito, o novo site tem Minhas Dicas :) #ficaadica

A 1ª Dica é -> Deixe aqui seu contato para receber nossas
NOVIDADES, PROMOÇÕES E CUPONS DE DESCONTOS ;)

Navegue SEM Moderação!