gpt4 book ai didi

c++ - 通过指针比较聚合类型的成员值

转载 作者:行者123 更新时间:2023-11-28 03:13:30 26 4
gpt4 key购买 nike

我在对链表中的节点进行排序时遇到了一些问题。我能够成功实现列表本身,但是当我尝试对其进行排序时,我失败了。我相信这是与我尝试比较聚合类型的引用指针有关的问题。我对指针或一般的 C++ 编程不是很有经验。如果有人能帮助我指出正确的方向,我将不胜感激。

void sortNodes()
{
int y, tmp;
y = nodeCount();
Node *curr, *prev;

for (int i = 0; i < y; i++)
{
curr = root;
for (int j = 0; j < y; j++)
{
prev = curr;
curr = curr->next;
if (prev->x > curr->x)
{
tmp = prev->x;
prev->x = curr->x;
curr->x = tmp;
}
}
}
curr = 0;
prev = 0;
}

最佳答案

你的第二个循环迭代了太多次(它运行 y 次并在每次访问 curr->x< 之前执行 curr = curr->next/)。此外,您不必每次都运行第二个循环直到结束,第一次运行后最后一个节点将包含最大值,两次运行后最后两个节点将具有最大值,等等。

否则对我来说它看起来像是一个很好的冒泡排序。如果你喜欢那种东西......

关于c++ - 通过指针比较聚合类型的成员值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17665979/

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