In the self-stabilizing algorithmic paradigm for distributed computation each node has only a local view of the system, yet in a finite amount of time, the system converges to a global state satisfying some desired property. In this paper we present polynomial time self-stabilizing algorithms for finding a dominating bipartition, a maximal independent set, and a minimal dominating set in any graph.