无法添加到循环链表

时间:2014-09-04 22:24:11

标签: c++ nodes circular-list

我正在尝试编写一个双循环链表。根据我的理解,代码实际上应该创建一个循环链表。

  1. 我从第一个节点将其前一个节点和下一个节点指向自身的特殊情况开始。
  2. 然后生成一个临时节点,其下一个节点指向当前头部,然后让当前头部的pPrev指针指向该临时节点。这应该建立temp和列表其余部分之间的链接。然后我让temp pPrev去尾巴,然后尾巴的pNext进入temp,我认为应该处理圆形。然后关闭我改变温度成为新的头。
  3. 当我从头部指针打印时,唯一打印的是第一个节点一遍又一遍。我没有看到我在这个实现中出错了。如果有人能给我并提示我哪里出错了,我将不胜感激。提前谢谢。

    void addNodeToStart(Node*& pHead, Node*& pTail, int input) {
        Node* pTemp = new Node;
        pTemp->data = input;
    
        if (pHead == NULL) {
            pTemp->data = input;
            pTemp->pNext = pTemp;
            pTemp->pPrev = pTemp;
    
            pHead = pTemp;
            pTail = pTemp;
        } else {
            pTemp->pNext = pHead;
            pHead->pPrev = pTemp;
            pTemp->pPrev = pTail;
            pTail->pNext = pTemp;
        }
    
        pHead = pTemp;
    }
    

0 个答案:

没有答案