下面的C++代码用于将字符串保存到带头节点的双向链表中,对重复的字符串计数,并将最新访问的字符串节点放在链头便于查找。横线处应填入的代码是:
typedef struct Node{
string str;
int ref;
struct Node *next, *prev;
}Node;
Node * Insert(Node *pHead, string s)
{
Node *p = pHead->next;
Node *q;
while(p) {
if(p->str == s) {
p->ref++;
p->next->prev = p->prev;
p->prev->next = p->next;
break;
}
p=p->next;
}
if(!p) {
p = new Node;
p->str = s;
p->ref=0;
p->next = p->prev = NULL;
}
/* 横线处 */
pHead->next = p, p->prev = pHead;
return pHead;
}