HEAP is used to store dynamically allocated memory (malloc). STACK stores static data (int, const).
The STACK and HEAP are stored "below" the executing program. The HEAP "grows" toward the program executable while the STACK grows away from it.
A double-linked list structure contains one pointer to the previous record in the list and a pointer to the next record in the list plus the record data.
Previous R; Data R; Next R; To insert a record (B) between two others (A and C): Previous.B = A; Next.B = C; Next.A = B; Previous.C = B;