Reading
Linked List
if we have an array based stack of 5 integers
we will have a index for the top of the stack
and an array of 5 integers
using the index operator [] we can get the address of, print the value or change the value for any of the 5 integers
they are all stored in memory one after the other
data[0]: address: 0x55f51f2fdb70 value: 5
data[1]: address: 0x55f51f2fdb74 value: 10
data[2]: address: 0x55f51f2fdb78 value: 15
data[3]: address: 0x55f51f2fdb7c value: 20
data[4]: address: 0x55f51f2fdb80 value: 25
if you look at the addresses they are for one constecutive piece of memory , they are all 4 bytes apart 4 bytes for each integer
now if we look a the nodes and their addresses from out linked list you will see that they are not in order
node:0x55729b641820 data:25 next: 0x55729b641800
node:0x55729b641800 data:20 next: 0x55729b6417e0
node:0x55729b6417e0 data:15 next: 0x55729b641790
node:0x55729b641790 data:10 next: 0x55729b640ed0
node:0x55729b640ed0 data:5 next: 0
this is because the data is not stored in an array
each time a new value is added a new node is created with new and the value is stored in the node
the node also conatains a pointer that we use to link to the next node in the sequence.
Look at this visualization
use the insert front function and you can see the methodology for creating your linked list
Linked List Demonstration