refine dirs and add list.h

implement the double-linked list and stack/queue based on list