In this paper we demonstrate how tree-like processes can be used to analyze a general class of priority queues with three service classes, creating a new methodology to study priority queues. The key result is that the operation of a 3-class priority queue can be mimicked by means of an alternate system that is composed of a single stack and queue. The evolution of this alternate system is reduced to a tree-like Markov process, the solution of which is realized through matrix analytic methods. The main performance measures, i.e., the queue length distributions and loss rates, are obtained from the steady state of the tree-like process through a censoring argument. The strength of our approach is demonstrated via a series of numerical examples.