●试题三 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 设有一个带表头结点的双向循环L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时0。每当在上进行一次L.Locate(x)操作时,令元素值x的结点的访问频度freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。 【函数】 void Locate(int &x) { *p=first->next; while(p!=frist && (1) )P=P->next; if (p!=first)/*中存在x*/ { (2) ; *current=p;/*从中摘下这个结点*/ Current->prior->next=current->next; Current->next->prior=current->prior; P=current->prior;/*寻找重新插入的位置*/ While(p!=first && (3) )p=p->prior; Current->next= (4) ;/*插入在P之后*? Current->prior=P; P->next->prior=current; P->next= (5) ; } else printf('Sorry.Not find!\n');/*没找到*/ }