
Data structures that fit in one place
Description
Book Introduction
The best way to start learning data structures easily: with minimal theory and maximum understanding.
Without complex mathematical formulas or abstract theories, the essence of data structures is explained in an easy and fun way with fun real-life examples, illustrations, and code that only contains the core.
It systematically guides developers through the data structures they must know, including arrays, Big-O notation, linked lists, stacks, queues, heaps, binary search trees, and graphs.
You can also naturally develop a sense of when to choose which structure.
If you want to build your foundation as a developer, prepare for coding tests, or better utilize data structures in your work, this book will be a great starting point.
Let's start the world's friendliest data structures class right now.
Without complex mathematical formulas or abstract theories, the essence of data structures is explained in an easy and fun way with fun real-life examples, illustrations, and code that only contains the core.
It systematically guides developers through the data structures they must know, including arrays, Big-O notation, linked lists, stacks, queues, heaps, binary search trees, and graphs.
You can also naturally develop a sense of when to choose which structure.
If you want to build your foundation as a developer, prepare for coding tests, or better utilize data structures in your work, this book will be a great starting point.
Let's start the world's friendliest data structures class right now.
- You can preview some of the book's contents.
Preview
index
Translator's Preface ix
Beta Reader Review x
Recommendation xii
Preface xiv
Acknowledgments xvi
About this book xviii
CHAPTER 01 Introduction to Data Structures: Why Learn Data Structures? 1
Welcome 1
What is a data structure? 3
Why should you care about data structures? 4
How to use data structures in a project? 8
Summary 14
CHAPTER 02 Static Arrays: The Starting Point of Data Structures 15
What is an array? 15
Arrays in Python 21
Working with Arrays 23
Practical Uses of Arrays 28
Summary 31
CHAPTER 03 Sorted Arrays: Fast Searches and Efficient Data Management 33
What does a sorted array mean? 33
Sorted Array Implementation 34
Summary 41
CHAPTER 04 Big-O Notation: Fundamentals of Algorithmic Efficiency 43
How can I make the best choice? 43
Big-O Notation 46
Example 55 of Asymptotic Analysis
Summary 59
CHAPTER 05 Dynamic Arrays: Data Structures That Flexibly Resize 60
Limitations of Static Arrays 61
How can I increase the size of an array? 63
Trophy Display Case 63
Should I also reduce the size of the array? 68
Implementing Dynamic Arrays 71
Summary 76
CHAPTER 06 Linked Lists: Flexible, Dynamic Collections 77
Linked List vs.
Array 78
Singly linked list 80
Sorted linked list 88
Doubly linked list 90
Circular Linked List 97
Summary 100
CHAPTER 07 Abstract Data Types: Design Principles for Simple Containers 102
Abstract data types vs.
Data Structures 103
Container 108
The most basic container: Bag 110
Summary 115
CHAPTER 08 Stack: A Stacking Structure for Data Processing 117
Stack as an Abstract Data Type 118
Stack as a Data Structure 121
Linked List Implementation 124
Theory and Reality 127
Application of Additional Stacks 129
Summary 133
CHAPTER 09 Stack: A Stacking Structure for Data Processing 117
Queue as an Abstract Data Type 134
Queues as Data Structures 138
Implementation 144
What about dynamic arrays? 150
More Applications of Queues 152
Summary 153
CHAPTER 10: Stacking Structures for Data Processing 117
Expanding the Queue with Priority 154
Using Priority Queues as Data Structures 157
Hip 160
Heap Implementation 163
Practical Uses of Priority Queues 173
Summary 175
CHAPTER 11: Stacks: A Stacking Structure for Data Processing 117
What is a tree? 176
Binary Search Tree 180
Balanced Tree 192
Summary 195
CHAPTER 12 Dictionaries and Hash Tables: Building and Using Associative Arrays 196
Dictionary Problem 197
Data Structures Implementing Dictionaries 199
Hash Table 201
Hashing 204
Conflict Resolution 206
Summary 213
CHAPTER 13 Graphs: Efficiently Modeling Complex Relationships 214
What is a Graph? 214
Graph Implementation 221
Graph Exploration 225
Step 232 remaining
Summary 233
Search 235
Beta Reader Review x
Recommendation xii
Preface xiv
Acknowledgments xvi
About this book xviii
CHAPTER 01 Introduction to Data Structures: Why Learn Data Structures? 1
Welcome 1
What is a data structure? 3
Why should you care about data structures? 4
How to use data structures in a project? 8
Summary 14
CHAPTER 02 Static Arrays: The Starting Point of Data Structures 15
What is an array? 15
Arrays in Python 21
Working with Arrays 23
Practical Uses of Arrays 28
Summary 31
CHAPTER 03 Sorted Arrays: Fast Searches and Efficient Data Management 33
What does a sorted array mean? 33
Sorted Array Implementation 34
Summary 41
CHAPTER 04 Big-O Notation: Fundamentals of Algorithmic Efficiency 43
How can I make the best choice? 43
Big-O Notation 46
Example 55 of Asymptotic Analysis
Summary 59
CHAPTER 05 Dynamic Arrays: Data Structures That Flexibly Resize 60
Limitations of Static Arrays 61
How can I increase the size of an array? 63
Trophy Display Case 63
Should I also reduce the size of the array? 68
Implementing Dynamic Arrays 71
Summary 76
CHAPTER 06 Linked Lists: Flexible, Dynamic Collections 77
Linked List vs.
Array 78
Singly linked list 80
Sorted linked list 88
Doubly linked list 90
Circular Linked List 97
Summary 100
CHAPTER 07 Abstract Data Types: Design Principles for Simple Containers 102
Abstract data types vs.
Data Structures 103
Container 108
The most basic container: Bag 110
Summary 115
CHAPTER 08 Stack: A Stacking Structure for Data Processing 117
Stack as an Abstract Data Type 118
Stack as a Data Structure 121
Linked List Implementation 124
Theory and Reality 127
Application of Additional Stacks 129
Summary 133
CHAPTER 09 Stack: A Stacking Structure for Data Processing 117
Queue as an Abstract Data Type 134
Queues as Data Structures 138
Implementation 144
What about dynamic arrays? 150
More Applications of Queues 152
Summary 153
CHAPTER 10: Stacking Structures for Data Processing 117
Expanding the Queue with Priority 154
Using Priority Queues as Data Structures 157
Hip 160
Heap Implementation 163
Practical Uses of Priority Queues 173
Summary 175
CHAPTER 11: Stacks: A Stacking Structure for Data Processing 117
What is a tree? 176
Binary Search Tree 180
Balanced Tree 192
Summary 195
CHAPTER 12 Dictionaries and Hash Tables: Building and Using Associative Arrays 196
Dictionary Problem 197
Data Structures Implementing Dictionaries 199
Hash Table 201
Hashing 204
Conflict Resolution 206
Summary 213
CHAPTER 13 Graphs: Efficiently Modeling Complex Relationships 214
What is a Graph? 214
Graph Implementation 221
Graph Exploration 225
Step 232 remaining
Summary 233
Search 235
Detailed image

Into the book
If you're reading this book, you probably know that we live in what's commonly referred to as the "data age."
In this era, data has become an indispensable element of our lives, and thanks to technological advancements, the speed of information production is increasing exponentially more than ever before.
This massive flow of data is changing how we live, work, and even communicate with each other.
/ To properly understand this vast amount of information and avoid being overwhelmed by it, we need a way to organize the information effectively.
This is where data structures come into play.
Data structures are the way computers and programs store and organize information, helping them manage and manipulate data more efficiently.
--- p.3
After much crying and arguing, Kim's parents finally agreed to provide a new display case to house her new trophies.
But he set a condition.
The existing display case cannot be expanded and must be discarded, and the cost of purchasing a new display case and disposing of the old one must be paid for with money from Kim's piggy bank.
If she doesn't have enough money to buy a new display case, she'll have no choice but to throw away some of her old robots.
/ So Kim has no choice but to find the optimal strategy to save as much money as possible in the long run (she might consider using modular furniture).
That's true, but let's assume for this analogy that we don't provide a modular solution.
--- p.64
The team is developing their first video game.
A quick look at the game reveals that it is a side-scroller where the protagonist moves from left to right within a building, moving from one room to another.
The team carefully designed the rooms and implemented each one individually.
Now all that remains is to model the progression between rooms.
/ 'What should we do with this?' the team pondered.
/ The framework the team uses basically provides a singly linked list, which can save a lot of development time.
However, if a singly linked list is used, the game protagonist can only go to the right room and cannot go back.
--- p.92
Priyanka recently joined a startup that, from the outside, looks absolutely fantastic.
Their mission resonated well with her, and the AI technology the founders developed was also appealing.
But she had no idea that, beyond its core technology, the company's infrastructure and organization were in shambles.
She didn't even have a proper task management tool, and her bug backlog consisted of sticky notes taped to her desk, monitor, and small kitchen table.
/ So, 'scrolling' through the backlog meant collecting these sticky notes, searching around the office, deciphering the handwriting, or trying to figure out who wrote them.
In these situations, it's easier to miss and forget about bugs than to fix them.
After missing a week of bug fixes and receiving a red flag, Priyanka couldn't take it anymore.
--- p.137
Mario has a good memory, but now that he has collected hundreds of cards, he has trouble remembering which ones he already owns and which ones he doesn't.
This is especially true when trading cards with friends, as you need to quickly choose a card before the other person takes it.
To stay ahead of the competition, Mario plans to utilize a mobile app that lets players scan a card with their camera and see in seconds whether that card is already in their collection and how many copies they have.
/ The core feature of this app (besides p.UX and object recognition) is the dictionary.
A dictionary stores data with a specific key and retrieves data based on the key.
For baseball cards, you can use the player's name or even a photo of the card as a key.
In this example, the key could be associated with an attribute such as the number of copies of a card you own, or details about the card (team information, statistics, etc.).
--- p.197
According to information gathered by the campaign manager, the rabbit is a social network star, and gaining its support could change the course of the election.
Tiger Headquarters wants to understand how far Rabbit has fallen from his friend chain.
He also wants to know what the shortest path is between the tiger and the rabbit.
The plan is to start with one of Tiger's friends, who will introduce Tiger to another of their friends, who will then introduce Tiger to another of their friends, and so on.
This process is repeated until the rabbit is reached, with the shorter the path, the fewer people involved.
/ The breadth-first search (BFS) algorithm does exactly this.
In this era, data has become an indispensable element of our lives, and thanks to technological advancements, the speed of information production is increasing exponentially more than ever before.
This massive flow of data is changing how we live, work, and even communicate with each other.
/ To properly understand this vast amount of information and avoid being overwhelmed by it, we need a way to organize the information effectively.
This is where data structures come into play.
Data structures are the way computers and programs store and organize information, helping them manage and manipulate data more efficiently.
--- p.3
After much crying and arguing, Kim's parents finally agreed to provide a new display case to house her new trophies.
But he set a condition.
The existing display case cannot be expanded and must be discarded, and the cost of purchasing a new display case and disposing of the old one must be paid for with money from Kim's piggy bank.
If she doesn't have enough money to buy a new display case, she'll have no choice but to throw away some of her old robots.
/ So Kim has no choice but to find the optimal strategy to save as much money as possible in the long run (she might consider using modular furniture).
That's true, but let's assume for this analogy that we don't provide a modular solution.
--- p.64
The team is developing their first video game.
A quick look at the game reveals that it is a side-scroller where the protagonist moves from left to right within a building, moving from one room to another.
The team carefully designed the rooms and implemented each one individually.
Now all that remains is to model the progression between rooms.
/ 'What should we do with this?' the team pondered.
/ The framework the team uses basically provides a singly linked list, which can save a lot of development time.
However, if a singly linked list is used, the game protagonist can only go to the right room and cannot go back.
--- p.92
Priyanka recently joined a startup that, from the outside, looks absolutely fantastic.
Their mission resonated well with her, and the AI technology the founders developed was also appealing.
But she had no idea that, beyond its core technology, the company's infrastructure and organization were in shambles.
She didn't even have a proper task management tool, and her bug backlog consisted of sticky notes taped to her desk, monitor, and small kitchen table.
/ So, 'scrolling' through the backlog meant collecting these sticky notes, searching around the office, deciphering the handwriting, or trying to figure out who wrote them.
In these situations, it's easier to miss and forget about bugs than to fix them.
After missing a week of bug fixes and receiving a red flag, Priyanka couldn't take it anymore.
--- p.137
Mario has a good memory, but now that he has collected hundreds of cards, he has trouble remembering which ones he already owns and which ones he doesn't.
This is especially true when trading cards with friends, as you need to quickly choose a card before the other person takes it.
To stay ahead of the competition, Mario plans to utilize a mobile app that lets players scan a card with their camera and see in seconds whether that card is already in their collection and how many copies they have.
/ The core feature of this app (besides p.UX and object recognition) is the dictionary.
A dictionary stores data with a specific key and retrieves data based on the key.
For baseball cards, you can use the player's name or even a photo of the card as a key.
In this example, the key could be associated with an attribute such as the number of copies of a card you own, or details about the card (team information, statistics, etc.).
--- p.197
According to information gathered by the campaign manager, the rabbit is a social network star, and gaining its support could change the course of the election.
Tiger Headquarters wants to understand how far Rabbit has fallen from his friend chain.
He also wants to know what the shortest path is between the tiger and the rabbit.
The plan is to start with one of Tiger's friends, who will introduce Tiger to another of their friends, who will then introduce Tiger to another of their friends, and so on.
This process is repeated until the rabbit is reached, with the shorter the path, the fewer people involved.
/ The breadth-first search (BFS) algorithm does exactly this.
--- p.226
Publisher's Review
The easiest data structure lesson explained with pictures and stories
Data structures are an essential topic in learning programming.
However, when you actually try to study, you often have the preconceived notion that it is difficult and boring.
《Data Structures in a Nutshell》 is an introductory book on data structures that breaks these prejudices and allows anyone to approach data structures in a fun way.
Instead of complex mathematical formulas or abstract explanations, the concepts of data structures are explained through real-life examples and interesting illustrations.
By systematically learning essential data structures one by one, including arrays, Big-O notation, linked lists, stacks, queues, heaps, hash tables, graphs, and binary search trees, you will not only memorize the concepts, but also be able to answer fundamental questions such as, "Why use this structure?" and "In what situations is it suitable?"
In particular, familiar analogies that can be encountered in real life, such as organizing a trophy display case, searching for baseball cards, managing box inventory, and triaging emergency room patients, help readers naturally recall the concepts, and intuitive illustrations and concise Python code are added to make it easy to understand and practice right away.
This book will serve as a solid first step for beginners in development, and a great opportunity for practitioners to re-establish their understanding of data structures.
It will serve as a reliable guide not only for learners preparing for coding tests, but also for developers who want to effectively utilize data structures in the field.
Data structures are no longer scary.
As you explore the illustrations, stories, and executable code, you'll find yourself strengthening your fundamental skills as a developer.
Key Contents
● Principles and implementation of core structures such as arrays, linked lists, queues, and stacks
● Big-O notation you must know when selecting a data structure
● Complex data processed with priority queues and heaps
● Understanding binary search trees and balanced trees that make searching easier
● Use of hash tables and graphs frequently used in practice
● All examples are implemented directly in Python and practiced
Data structures are an essential topic in learning programming.
However, when you actually try to study, you often have the preconceived notion that it is difficult and boring.
《Data Structures in a Nutshell》 is an introductory book on data structures that breaks these prejudices and allows anyone to approach data structures in a fun way.
Instead of complex mathematical formulas or abstract explanations, the concepts of data structures are explained through real-life examples and interesting illustrations.
By systematically learning essential data structures one by one, including arrays, Big-O notation, linked lists, stacks, queues, heaps, hash tables, graphs, and binary search trees, you will not only memorize the concepts, but also be able to answer fundamental questions such as, "Why use this structure?" and "In what situations is it suitable?"
In particular, familiar analogies that can be encountered in real life, such as organizing a trophy display case, searching for baseball cards, managing box inventory, and triaging emergency room patients, help readers naturally recall the concepts, and intuitive illustrations and concise Python code are added to make it easy to understand and practice right away.
This book will serve as a solid first step for beginners in development, and a great opportunity for practitioners to re-establish their understanding of data structures.
It will serve as a reliable guide not only for learners preparing for coding tests, but also for developers who want to effectively utilize data structures in the field.
Data structures are no longer scary.
As you explore the illustrations, stories, and executable code, you'll find yourself strengthening your fundamental skills as a developer.
Key Contents
● Principles and implementation of core structures such as arrays, linked lists, queues, and stacks
● Big-O notation you must know when selecting a data structure
● Complex data processed with priority queues and heaps
● Understanding binary search trees and balanced trees that make searching easier
● Use of hash tables and graphs frequently used in practice
● All examples are implemented directly in Python and practiced
GOODS SPECIFICS
- Date of issue: September 26, 2025
- Page count, weight, size: 260 pages | 188*245*16mm
- ISBN13: 9791194587590
You may also like
카테고리
korean
korean