我有一个struct类型的节点:
struct node
{
int data;
node *next;
};
我有一个使用这个节点结构的链表。我可以使用另一个链表对这个链表进行排序并复制那里的节点值,但我想在链表中实现选择排序。我看了一些问题和文章,但我不清楚这是否可能。我需要索引来实现选择排序吗?如果可能的话,我该怎么做呢?
选择排序适用于数组,向量,具有随机访问迭代器且没有链接(如next指针)的东西(链接在交换元素时产生开销)。对于一个简单的列表排序,从一个空列表开始,它将成为排序列表,说这是struct node *sorted = NULL;. 每次从原始列表中删除一个节点,并按排序顺序将它们插入排序列表(开始时为空列表)。
写一些代码,用你已经尝试过的东西更新你的答案。