Bitcoin Course Online, Cryptocurrency Technologies - 4 : Hash Pointers and Data Structures

Before starting about this section, I want to inform you that these topics may be complex to understand. Needs a lot of reading and research.

"A hash pointer is a cryptographic hash pointing to a data block. Unlike linked list that lets you find the next block, Hash Pointer lets you verify that the previous block of data has not been tampered with"
- Defined in Quora :

Simply, hash pointer tells us where something is and what it's value was.

img src : Coursera 

A data structure is a specialized way of storing data. There are two data structure properties that are critical if you want to understand how a blockchain works. 

They are: - Pointers. - Linked Lists. 
Pointers are variables in programming which stores the address of another variable. Usually normal variables in any programming language stores data. Eg. int a = 10, means that there is a variable “a” which stores integer values. In this case, it is storing an integer value which is 10. This is a normal variable. Pointers, however, instead of storing values will store addresses of other variables. Which is why they are called pointers, because they are literally pointing towards the location of other variables.  

A linked list is one of the most important items in data structures. This is what a linked list looks like:

img src : 

It is a sequence of blocks, each containing data which is linked to the next block via a pointer. The pointer variable, in this case, contains the address of the next node in it and hence the connection is made. The last node, as you can see, has a null pointer which means that it has no value.
One important thing to note here, the pointer inside each block contains the address of the next block. That is how the pointing is achieved. 
As you may have guessed by now, this is what the structure of the blockchain is based on. A block chain is basically a linked list. Let’s see what the blockchain structure looks like:
img src :  
The blockchain is a linked list which contains data and a hash pointer which points to its previous block, hence creating the chain. What is a hash pointer? A hash pointer is similar to a pointer, but instead of just containing the address of the previous block it also contains the hash of the data inside the previous block. This one small tweak is what makes blockchains so amazingly reliable and trailblazing.
Note : This section covers basics on hash pointers and data structure. For more and clear understanding, please go to these links : Coursera & Blockgeeks