This distinction holds even when the nodes are actually implemented as elements of a single array, and the references are actually array indices: as long as no arithmetic is done on those indices, the data structure is essentially a linked one.
They are also key building blocks for many efficient algorithms, such as topological sort[1] and set union-find.
This is an example of the node class structure used for implementation of linked list in C++: A search tree is a tree data structure in whose nodes data values can be stored from some ordered set, which is such that in an in-order traversal of the tree the nodes are visited in ascending order of the stored values.
A linked data structure is built dynamically and never needs to be bigger than the program requires.
But in a linked data structure, the reference to each node gives users the information needed to find the next one.
The nodes of a linked data structure can also be moved individually to different locations within physical memory without affecting the logical connections between them, unlike arrays.
Linked data structures may also incur in substantial memory allocation overhead (if nodes are allocated individually) and frustrate memory paging and processor caching algorithms (since they generally have poor locality of reference).