Two-Sided Matching Markets: Models, Structures, and Algorithms