This is the first part of a two-part introduction to elementary data structures. In this first part we are covering:
0:00 data structures & abstract data types
5:58 abstract data type: stack
8:16 array-based stack
16:41 dynamic arrays
23:20 amortized analysis for resizing strategies
25:58 analysis of incremental strategy
31:27 analysis of doubling strategy
37:07 dynamic arrays in Python: lists
In the second part ( • Elementary Data Structures (part 2): ... ) we will do queues and linked lists.
The accompanying notebook is here: https://github.com/kbuchin/algonotebo...