The classical Stable Roommates problem asks whether it is possible to have a matching of an even number of agents such that no two agents which are not matched to each other would prefer to be with each other rather than with their assigned partners. We investigate Stable Roommates with complete (i.e., every agent can be matched with any other agent) or incomplete preferences, with ties (i.e., two agents are considered of equal value to some agent) or without ties. It is known that in general allowing ties makes the problem NP-complete. We provide algorithms for Stable Roommates that are, compared to those in the literature, more efficient when the input preferences are complete and have some structural property, such as being narcissistic, single-peaked, and single-crossing. However, when the preferences are incomplete and have ties, we show that being single-peaked and single-crossing does not reduce the computational complexity-Stable Roommates remains NP-complete. * A preliminary verion of this work appeared in the Proceedings of the 5th International Conference on Algorithmic Decision Theory (ADT '17) [8], volume 10576 of LNCS, pages 315-330, Springer, 2017. This full version contains proof details for Proposition 2.1, Observation 2.2, and Proposition 4.1. Furthermore, the reduction used for our main result (Theorem 4.4) was replaced by a completely new reduction showing NP-hardness for the case of narcissistic, single-peaked, and single-crossing preferences (the preferences in the previous reduction were not narcissistic).