我在双链接列表上实现排序时遇到问题。下面我有插入双链表的代码,以及快速排序列表的代码,但是我无法让它工作。任何帮助将不胜感激!
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++;
}
答案 0 :(得分:0)
由于您没有提供任何代码,无论您声明的位置以及如何使用sortedList类的 tail 属性,我都无法在您的第二个if语句中说明您对它的赋值。但是,如果你在insertElement函数的第一个if语句中没有使用花括号,那么一切似乎都没问题。您可以按如下方式更正。
if (prev == NULL) {
head = newPtr;
tail->prev = newPtr;
}
else
prev->next = newPtr;
如果您的问题没有解决,您可能需要编辑您的问题以分享您的sortedList的最少额外信息,以及您在其中使用的更多代码,以便我可以重新生成它。