Think Data Structures

Algorithms and Information Retrieval in Java

by Allen Downey

DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

If you're a student studying computer science or a software developer preparing for technical interviews, this practical book will help you learn and review some of the most important ideas in software engineering - data structures and algorithms - in a way that's clearer, more concise, and more engaging than other materials.

By emphasizing practical knowledge and skills over theory, author Allen Downey shows you how to use data structures to implement efficient algorithms, and then analyze and measure their performance. You'll explore the important classes in the Java collections framework (JCF), how they're implemented, and how they're expected to perform. Each chapter presents hands-on exercises supported by test code online.

- Use data structures such as lists and maps, and understand how they work;
- Build an application that reads Wikipedia pages, parses the contents, and navigates the resulting data tree;
- Analyze code to predict how fast it will run and how much memory it will require;
- Write classes that implement the Map interface, using a hash table and binary search tree;
- Build a simple web search engine with a crawler, an indexer that stores web page contents, and a retriever that returns user query results.

This open book is licensed under a Creative Commons License (CC BY-NC-SA). You can download Think Data Structures ebook for free in PDF format (1.2 MB).

Table of Contents

Chapter 1
Interfaces
1
Chapter 2
Analysis of Algorithms
9
Chapter 3
ArrayList
19
Chapter 4
LinkedList
31
Chapter 5
Doubly-linked list
41
Chapter 6
Tree traversal
51
Chapter 7
Getting to Philosophy
61
Chapter 8
Indexer
69
Chapter 9
The Map interface
79
Chapter 10
Hashing
85
Chapter 11
HashMap
93
Chapter 12
TreeMap
103
Chapter 13
Binary search tree
111
Chapter 14
Persistence
121
Chapter 15
Crawling Wikipedia
133
Chapter 16
Boolean search
143
Chapter 17
Sorting
155

Book Details

Subject
Computer Science
Publisher
O'Reilly Media, Green Tea Press
Published
2016
Pages
187
Edition
1
Language
English
ISBN13 Digital
9781491972397
ISBN10 Digital
1491972394
PDF Size
1.2 MB
License
CC BY-NC-SA

Book Hashtags

Related Books

Open Data Structures (in C++)
There are plenty of books that teach introductory data structures. Some of them are very good. Most of them cost money, and the vast majority of computer science undergraduate students will shell out at least some cash on a data structures book. Open Data Structures (in C++) - The goal of this project is to free undergraduate computer science stud...
Open Data Structures (in Java)
There are plenty of books that teach introductory data structures. Some of them are very good. Most of them cost money, and the vast majority of computer science undergraduate students will shell out at least some cash on a data structures book. Open Data Structures (in Java) - The goal of this book is to free undergraduate computer science stud...
Pro TBB
This book is a modern guide for all C++ programmers to learn Threading Building Blocks (TBB). Written by TBB and parallel programming experts, this book reflects their collective decades of experience in developing and teaching parallel programming with TBB, offering their insights in an approachable manner. Throughout the book the authors present ...
Projection-Based Clustering through Self-Organization and Swarm Intelligence
It covers aspects of unsupervised machine learning used for knowledge discovery in data science and introduces a data-driven approach to cluster analysis, the Databionic swarm(DBS). DBS consists of the 3D landscape visualization and clustering of data. The 3D landscape enables 3D printing of high-dimensional data structures.The clustering and numbe...
Programming Persistent Memory
Beginning and experienced programmers will use this comprehensive guide to persistent memory programming. You will understand how persistent memory brings together several new software/hardware requirements, and offers great promise for better performance and faster application startup times - a huge leap forward in byte-addressable capacity compar...
Data Structures and Algorithms
Data Structures and Algorithms (DSA) features implementations of data structures and algorithms that are not implemented in any version of .NET. This book is the result of a series of emails sent back and forth between the two authors during the development of a library for the .NET framework of the same name. A key factor of this book and it...