gpt4 book ai didi

c++ - 插入排序链表c++

转载 作者:行者123 更新时间:2023-11-28 07:37:39 28 4
gpt4 key购买 nike

我正在尝试用随机数对已填充的链表进行排序。我创建的功能无法正常工作。我看不出有什么问题,它没有正确排序数字。

void linked_list::SortList()
{
if(is_empty())
{
return;
}
for(node_t *it =head; it!=tail; it = it->next)
{
int valToIns = it->value;
node_t *holePos = it;
while(holePos->prev && valToIns < it->prev->value)
{
holePos->value = holePos->prev->value;
holePos = holePos->prev;
}
holePos->value = valToIns;
}
}

最佳答案

您正在与错误的元素进行比较,

while(holePos->prev && valToIns < it->prev->value)

应该是

while(holePos->prev && valToIns < holePos->prev->value)

为了比较valToInsholePos指向的前一个值。

关于c++ - 插入排序链表c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16426104/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com