C ++:链表头和尾指针

时间:2013-01-12 14:16:24

标签: c++ linked-list

我没有得到这个,当我打电话给head->value时,它会返回我添加到链表的最后一个值。它是否应该返回第一项,因为head仅在空时设置?正确?我想也许代码中还有其他一些错误。

void LinkedListPQueue::enqueue(const string& elem) {
    cell *newCell = new cell;
    newCell->value = elem;
    newCell->next = NULL;
    if(this->isEmpty()) {
        this->head = this->tail = newCell;
    } else {
        // find smallest and put it there

        this->tail->next = newCell;
        this->tail = newCell;
    }
}

在标题

中声明
struct cell {
    std::string value;
    cell *next;
};
cell *head, *tail;

1 个答案:

答案 0 :(得分:6)

我的isEmpty未正确实现,因此每次添加新节点时,都会将头部重新分配给该节点