对链表进行排序



我有一个struct类型的节点:

struct node
{
    int data;
    node *next;
};

我有一个使用这个节点结构的链表。我可以使用另一个链表对这个链表进行排序并复制那里的节点值,但我想在链表中实现选择排序。我看了一些问题和文章,但我不清楚这是否可能。我需要索引来实现选择排序吗?如果可能的话,我该怎么做呢?

选择排序适用于数组,向量,具有随机访问迭代器且没有链接(如next指针)的东西(链接在交换元素时产生开销)。对于一个简单的列表排序,从一个空列表开始,它将成为排序列表,说这是struct node *sorted = NULL;. 每次从原始列表中删除一个节点,并按排序顺序将它们插入排序列表(开始时为空列表)。

写一些代码,用你已经尝试过的东西更新你的答案。

相关内容

  • 没有找到相关文章

最新更新