0001 template <typename T> //在有序列表内节点p(可能是trailer)的n个真前驱中,找到不大于e的最后者 0002 ListNodePosi<T> List<T>::search( T const& e, Rank n, ListNodePosi<T> p ) const { 0003 do { //初始有:0 <= n <= rank(p) < _size;此后,n总是等于p在查找区间内的秩 0004 p = p->pred; n--; //从右向左 0005 } while ( ( -1 != n ) && ( e < p->data ) ); //逐个比较,直至越界或命中 0006 return p; //返回最终停止的位置 0007 } //失败时返回区间左边界的前驱(可能是header)——调用者可据此判断查找是否成功