实现doublyLinkedList排序

时间:2016-04-26 05:54:08

标签: sorting doubly-linked-list

我在双链接列表上实现排序时遇到问题。下面我有插入双链表的代码,以及快速排序列表的代码,但是我无法让它工作。任何帮助将不胜感激!

void sortedList::insertElement(listItemType newItem)
{

    listNode *prev = NULL;
    listNode *cur = head;

    while ((cur != NULL) && (newItem > cur->item))
    {
       prev = cur;
       cur = cur->next;
    }

    listNode *newPtr = new listNode;
    newPtr->item = newItem;

    newPtr->next = cur;

    if (prev == NULL)
        head = newPtr;
        tail->prev = newPtr;
    else
        prev->next = newPtr;

    size++;
}

1 个答案:

答案 0 :(得分:0)

由于您没有提供任何代码,无论您声明的位置以及如何使用sortedList类的 tail 属性,我都无法在您的第二个if语句中说明您对它的赋值。但是,如果你在insertElement函数的第一个if语句中没有使用花括号,那么一切似乎都没问题。您可以按如下方式更正。

if (prev == NULL) {
    head = newPtr;
    tail->prev = newPtr;
}
else
    prev->next = newPtr;

如果您的问题没有解决,您可能需要编辑您的问题以分享您的sortedList的最少额外信息,以及您在其中使用的更多代码,以便我可以重新生成它。