思路
主要考察双链表的查找、插入、删除
代码
DLNode Locate(DLinkList &L,ElemType x){
LNode *p=L->next,*r;
//找到值为x的结点DD
while(p!=NULL&&p->data!=x) p=p->next;
p->freq++;
r=p->pred;
while(r!=L && r->freq<=p->freq) r=r->pred;
//调位置
p->pred->next=p->next;
p->next->pred=p->pred;
p->next=r->next;
p->next->pred=p;
r->next=p;
p->pred=r;
return p;
}