0001 using U = uint32_t; //约定:类型T或就是U,或可转换为U,并依此定序 0002 template <typename T> void List<T>::radixSort(LNP<T> h, LNP<T> t) { 0003 Rank i, n = *t - h - 1; //共有n个节点 0004 for (U radixBit = 0x1; radixBit; radixBit <<= 1) //反复地根据当前基数位 0005 for (LNP<T> p = h + (i = 0); i < n; i++) //将所有节点 0006 (radixBit & U (p->succ->data)) ? //分拣为前缀(0)与后缀(1) 0007 p->succ->movePred(t) : p = p->succ; //当前位为1,则后移至t之前;否则,跳过 0008 } //radixSort