【正确答案】
【答案解析】bool Locate(DblList &L,Type x){
//在双向链表中查找值为x的结点,找到后该结点被搬到适当位置,函数返回true,
//否则函数返回false。
DblNode
*
p=L->rLink,
*
q;
while (p!=NULL&&p->data!=x)p=p->rLink;
if(p!=NULL){ //链表中存在x
p->freq++;q=p; //该结点的访问频度加1
q->iLink->rLink=q->rLink; //从链表中摘下这个结点
q->rLink->ILink=q->iLink;
p=q->lLink; //寻找重新插入的位置
while (p!=L&&q->freq>p->freq) p=p->lLink;
q->rLink=p->rlink;q->llink=p; //插入在p之后
p->rLink->lLink=q;p->rLink=q;
return true;
}
else return false; //没找到