Esse livro trata dos fundamentos de estruturas de dados e algoritmos – os elementos básicos a partir dos quais se constroem softwares. Os leitores poderão conhecer o uso do projeto orientado a objetos em Java e ilustrar o uso dos padrões de projeto orientado a objetos emergentes. O livro mostra como tais padrões são usados para criar projetos de software. Serão usados os seguintes padrões de projeto: singleton, container, enumeração, adaptador, e visitante. Estrutura de dados e algoritmos apresenta a seguinte organização: – Modelos de Computador, análise de algoritmos (Capítulos 2 e 3). – Estruturas de dados fundamentais, abstração e tipos abstratos de dados (Capítulos 4 e 5). – Pilhas, filas, listas ordenadas e listas classificadas (Capítulos 6 e 7). – Dispersão, tabelas de dispersão, tabelas de espalhamento (Capítulo 8). – Árvores e árvores de busca (Capítulos 9 e 10). – Heaps e filas de prioridade (Capítulo 11). – Técnicas de projeto de algoritmos (Capítulo 14). – Algoritmos de ordenação e ordenadores (Capítulo 15). – Grafos e Algoritmos em Grafos (Capítulo 16). – Revisão dos conceitos fundamentais de programação em Java e uma visão geral de programação orientada a objetos com Java (Apêndice A).