You need to have a node object, that has a pointer to the next node and the previous node in your list, as well as the other data you want to store in the node.
struct node
{
int data;
node* pNext;
node* pPrev;
};
your list object will have a head node, which is the starting node of the list.
When there is only 1 node, then the prev and next pointers will point to itself.
2 nodes, both next and prev pointers point to the other node, and keep track of which one is the head node.
3 and up, you have a connected chain of nodes, that eventually circle around back to the head, and navigation can move either way.