‹ 上一题 下一题 ›

g5-04178. GESP-5级-2023-12-单选-第05题 未做

1000 ms 256 MB 测试点 ? GESPGESP-52023-12单选客观题5级·链表链表

下面的 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;
}
  • A. if(pHead) {p->next = pHead->next, pHead->next->prev = p;}
  • B. if(pHead->next) {p->next = pHead->next, pHead->next->prev = p;}
  • C. p->next = pHead->next, pHead->next->prev = p;
  • D. 触发异常。不能对空指针进行操作。
未选择
输入
输出

            
答案