Basically, you have 4 independent problems, they are just all related to doubly linked lists. Solve them one by one.
your first problem is that this is not a doubly linked list:
In a doubly linked list, you have pointer to next
a pointer to previous