所以我有一个单独的链表。新项目被添加到链的前端,所以如果你添加了8,4,10,那么列表将是10,4,8。无论如何,现在我想在插入完成后对列表进行排序,除非我无法弄清楚如何循环这些数字并按升序重新排列它们。我可能会在这里休息一下,稍微回来,希望这会帮助我弄清楚这一点。按升序对链表进行排序C++
*这是一个学校项目,所以建议我使用其他容器在我的情况下没有帮助,除了信息丰富,因为我无法改变我正在使用的内容。
布局列表
struct Node
{
int Item; // User data item
Node * Succ; // Link to the node's successor
};
unsigned Num //number of items in the list
Node * Head //pointer to the first node
我的插入函数看起来像这样
Node * newOne;
newOne = new (nothrow) Node;
newOne->Item = X;
newOne->Succ = NULL;
if(Head == NULL)
{
Head = newOne;
}
else
{
newOne->Succ = Head;
Head = newOne;
}
Num++;
该作业还有其他限制吗?你可以将内容复制到另一个容器进行分类吗? – Chad
这真的很难。我怀疑即使在休息之后,正确的解决方案也会来临(尽管你可能是一个天才,谁知道呢)。看看这里的最佳解决方案http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html – john
也许你应该在插入时对它进行排序?即把元素放在正确的位置... – Caribou