Arrays (or lists) are probably the most common data structure used to store a collection of elements. As we mentioned previously in this book, each language has its own implementation of arrays. This data structure is very convenient and provides a handy [] syntax to access its elements. However, this data structure has a disadvantage: the size of the array is fixed (in most languages), and inserting or removing items from the beginning or from the middle of the array is expensive, because the elements need to be shifted over (even though we learned that JavaScript has methods from the Array class that will do that for us; this is what happens behind the scenes as well).
Linked lists store a sequential collection of elements but, unlike arrays, in linked lists the elements are not placed contiguously in memory. Each element consists of a node...