发布网友 发布时间:2022-04-25 16:34
共1个回答
热心网友 时间:2023-11-09 12:54
int locate(dlink*h,elemtpye x)
{dlink*p=h->next,*q;
int i;
i=1;
while(p!=NULL&&p->data!=x)
{p=p->next; /*找data域值为x的结点p*/
i++;
}
if(p==NULL) /*未找到的情况*/
i=0;
else /*找到的情况*/
{p->freq++;
q=p->prior; /*向前检索*/
while(q!=h&&q->freq<p->freq)
{i--;
p->prior=q->prior; /*交换p和q的位置*/
p->prior->next=p;
q->next=p->next;
p->next->prior=q;
p->next=q;
q->prior=p;
}
}
return i;
}