Could anyone give an overview of how list structures which are composed of a head and a tail which references the rest of the list i.e linked list are represented in memory of the computer? Does the computer make use of cpu registers to hold the pointers the head and rest of the list?
In a naive implementation, each node is allocated separately, so the nodes would be spread more or less randomly through the heap memory, wherever the memory allocator found some free space.
In practice, implementations typically try to improve cache locality by allocating space in bulk for a reasonable number of nodes at a time and keep track of that preallocated space.
Any good compiler, when compiling code that iterates over the list, will almost certainly produce machine code that does this, but that's implementation detail that has nothing to do with the concept of the data structure.