A packet-based least cushion first/most urgent first (PB-LCF/MUF) maximal matching algorithm is presented in this paper for combined input and output queued (CIOQ) switches with multiple traffic classes. The main benefit of using a CIOQ switch is to alleviate memory bandwidth requirement while providing quality of service (QoS) guarantee. It was proved that, with a speedup factor of 2, a CIOQ switch which adopts the LCF/MUF scheduling algorithm can exactly emulate an output queued (OQ) switch for any service discipline under fixed-length packets assumption. However, in current Internet environment, packets are transported with different lengths. Therefore, it is necessary to modify the LCF/MUF scheduling algorithm for variable-length packet traffic. For ease of implementation, the proposed algorithm calculates approximate cushions and does not perform re-ordering at output ports. We found, via computer simulations, that the performance of a CIOQ switch with a speedup factor of 5 that adopts the proposed single-iteration PB-LCF/MUF algorithm is close to that of an OQ switch under the weighted round robin service discipline for offered traffic load up to 0.9. In addition, the packet departure order can be maintained under the single-iteration algorithm.