设有一头指针为L的带有表头结点的非循环双向链表,其每个结点中除有prev(前驱指针),data(数据)和next(后继指针)域外,还有一个访问频度域freq。在链表被起用前,其值均初始化为零。每当在链表中进行一次Locate(L,x)运算时,令元素值为x的结点中freq域的值增1,并使此链表中结点保持按访问频度非增(递减)的顺序排列,同时最近访问的结点排在频度相同的结点的最后,以便使频繁访问的结点总是靠近表头。试编写符合上述要求的Locate(L,x)运算的算法,该运算为函数过程,返回找到结点的地址,类型为指针型。(Has a head pointer is non-circular doubly linked list L with a header node, each node in addition to prev (precursor pointer), data (data) and next (successor pointers) outside, there is an access frequency degree domain freq. Before the list was hired, their values are initialized to zero. Whenever carried out in the list once Locate (L, x) when the operation, so that the element node x is the value in freq domain by one, and keep this list in the node-access frequency of non-increasing (decreasing) the order, while a recent visit to the nodes in the same row of the frequency of the last node, so that the nodes are frequently accessed tables are always near the head. Locate (L, x) algorithm is prepared in accordance with the above requirements of the test operation, the operation as a function of the process, return to find the address of the node of type pointer.)