六、填空题(每空2分,共10分)
29、设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次 L.Locate (x)操作时,令元素值x的结点的访问频度freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。
函数中有些语句缺失,请将它们补上。(每一个空2分,共10分) template< class Type>
void DblList<Type> :: Locate ( Type & x) {
DblNode<Type>*p=first->next ;
While (p ! = frist && ① )p = ->next; If (p ! =first){ //链表中存在x ② ; //该结点的访问频度加l
DblNode<Type>*current=p; //从链表中摘下这个结点 Current prior next = current next; Current next prior = current prior;
P=current prior; //寻找重新插入的位置 While (p !=first && ③ )
P=p prior ;
Current next= ④ ; //插入在p之后 Current prior=p ; P next prior=current ; P next= ⑤ ; }
else cout<<”Sorry.Not find! \n”; //没找到
}
缺失的内容为: ① ② ③ ④ ⑤
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数据结构试题(4)在线全文阅读。
相关推荐: