Data Structures
So, did we need a tail pointer?
No! Head is sufficient
How can we say it is essentially “direct
access”?
Array:     array[top_index] = data
which actually is:   *(array+top_index) = data
Linked list:   head->member = data
which actually is:   (*head).member = data
Of course, = may not be appropriate