Donβt be perplexed by data structures! This fun, friendly, and fully illustrated guide makes it easy to learn useful data structures youβll put to work every day. Grokking Data Structures makes it a breeze to learn the most useful day-to-day data structures. Youβll follow a steady learning path f
Grokking Data Structures
β Scribed by La Rocca, Marcello;
- Publisher
- Manning Publications Co. LLC
- Year
- 2024
- Tongue
- English
- Leaves
- 280
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Synopsis
Don't be perplexed by data structures! This fun, friendly, and fully illustrated guide makes it easy to learn useful data structures you'll put to work every day.
Grokking Data Structures makes it a breeze to learn the most useful day-to-day data structures. You'll follow a steady learning path from absolute basics to advanced concepts, all illustrated with fun examples, engaging industry stories, and hundreds of graphics and cartoons.
InGrokking Data Structures you'll learn how to
Understand the most important and widely used data structures
Identify use cases where data structures make the biggest difference
Pick the best data structure solution for a coding challenge
Understand the tradeoffs of data structures and avoid catastrophes
Implement basic data collections like arrays, linked lists, stacks, and priority queues
Use trees and binary search trees (BSTs) to organize data
Use graphs to model relationships and learn about complex data
Efficiently search by key using hash tables and hashing functions
Reason about time and memory requirements of operations on data structures
Grokking Data Structures carefully guides you from the most basic data structures like arrays or linked lists all the way to powerful structures like graphs. It's perfect for beginners, and you won't need anything more than high school math to get started. Each data structure you encounter comes with its own complete Python implementation so you can start experimenting with what you learn right away.
Foreword by Daniel Zingaro.
About the technology
Data structures are vital for shaping and handling your data organization. They're also an important part of most IT job interviews! Whether you're new to data structures or just dusting off what you learned in school, this book will get you up to speed fast with no advanced math, abstract theory, or complicated proofs.
About the book
Grokking Data Structures introduces common and useful data structures that every developer needs to know. Real-world examples show you how data structures are used in practice, from making your searches faster to handling triage in an emergency room. You'll love the fun cartoons, insightful stories, and useful Python code samples that make data structures come alive. And unlike jargon-laden academic texts, this book is easy-to-read and practical.
What's inside
Fast searches using hash tables
Trees and binary search trees (BSTs) to organize data
Use graphs to model complex data
The best data structures for a coding challenge
About the reader
For readers who know the basics of Python. A perfect companion to Grokking Algorithms!
About the author
Marcello La Rocca is a research scientist and a full-stack engineer. He has contributed to large-scale web applications and machine learning infrastructure at Twitter, Microsoft, and Apple.
The technical editor on this book wasBeau Carnes.
β¦ Table of Contents
Grokking Data Structures
Copyright
dedication
contents
front matter
foreword
preface
acknowledgments
about this book
about the author
1 Introducing data structures: Why you should learn about data structures
Welcome to Grokking Data Structures
What are data structures?
Why should I care about data structures?
How do we use data structures in a project?
Recap
2 Static arrays: Building your first data structure
What is an array?
Arrays in Python
Operations on arrays
Arrays in action
Recap
3 Sorted arrays: Searching faster, at a price
Whatβs the point of sorted arrays?
Implementing sorted arrays
Recap
4 Big-O notation: A framework for measuring algorithm efficiency
How do we choose the best option?
Big-O notation
An example of asymptotic analysis
Recap
5 Dynamic arrays: Handling dynamically sized datasets
The limitations of static arrays
How can we grow an arrayβs size?
The trophy case
Should we also shrink arrays?
Implementing a dynamic array
Recap
6 Linked lists: A flexible dynamic collection
Linked lists vs. arrays
Singly linked lists
Sorted linked lists
Doubly linked lists
Circular linked lists
Recap
7 Abstract data types: Designing the simplest containerβthe bag
Abstract data types vs. data structures
Containers
The most basic container: The bag
Recap
8 Stacks: Piling up data before processing it
Stack as an ADT
Stack as a data structure
Linked list implementation
Theory vs. the real world
More applications of a stack
Recap
9 Queues: Keeping information in the same order as it arrives
Queue as an abstract data type
Queue as a data structure
Implementation
What about dynamic arrays?
More applications of a queue
Recap
10 Priority queues and heaps: Handling data according to its priority
Extending queues with priority
Priority queues as data structures
Heap
Implementing a heap
Priority queues in action
Recap
11 Binary search trees: A balanced container
What makes a tree?
Binary search trees
Balanced trees
Recap
12 Dictionaries and hash tables: How to build and use associative arrays
The dictionary problem
Data structures implementing a dictionary
Hash tables
Hashing
Conflict resolution
Recap
13 Graphs: Learning how to model complex relationships in data
Whatβs a graph?
Implementing graphs
Graph search
Whatβs next
Recap
index
π SIMILAR VOLUMES
Grokking Data Structures makes it a breeze to learn even complex data structures. Youβll follow a steady learning path from absolute basics to advanced concepts, with fun cartoons and stories to make sure every structure sticks! Real-world examples show you how data structures are used in industryβs
This textbook was written by David Scuse for his COMP 1020: Introduction to Computer Science 2 course at the University of Manitoba.
Data structure is a way of organizing data in a computer memory so that it can be used efficiently. Data structures can implement one or more particular abstract data types (ADT), which are the means of specifying the nature of operations and their complexity. This book focuses on the design and