我有一個結構類型的節點:排序鏈表到位
struct node
{
int data;
node *next;
};
我使用這個節點結構的鏈接列表。我可以排序使用另一個鏈接列表和複製節點值有這個鏈表,但我想實現在鏈表selection sort。我已經經歷了一些問題和文章,但是我不清楚這是否可能。我是否需要一個索引來實現選擇排序?如果可能的話,我該如何繼續?
我有一個結構類型的節點:排序鏈表到位
struct node
{
int data;
node *next;
};
我使用這個節點結構的鏈接列表。我可以排序使用另一個鏈接列表和複製節點值有這個鏈表,但我想實現在鏈表selection sort。我已經經歷了一些問題和文章,但是我不清楚這是否可能。我是否需要一個索引來實現選擇排序?如果可能的話,我該如何繼續?
選擇排序是爲數組,向量的事情,有隨機訪問迭代器和類似next指針沒有鏈接(鏈接交換元素時創建的開銷)。對於一個簡單的列表排序,從一個空列表開始,它將成爲排序列表,比如說這是struct node * sorted = NULL; 。從原始列表中逐個刪除一個節點,並按排序順序將它們插入排序列表(以空列表開頭)。
寫一些代碼,並與您到目前爲止已經試過什麼更新你的答案。
,所以我不能執行選擇排序在鏈表? –
@avijitbhattacharjee - 用列表選擇排序有點複雜。首先將掃描指針設置爲從列表的第一個節點開始。瀏覽列表的「最小」的節點,然後交換節點與列表(如果不同)的第一個節點,然後提前掃描指針到第二個節點,並重復,直到你去通過列表。要交換節點,交換指向這兩個節點的指針,然後交換這兩個節點的下一個指針(按該順序)。 – rcgldr
'什麼建議嗎?'是啊,寫一些排序代碼。認真。你的問題是什麼?你只是想讓別人給你代碼? – John3136
LMAO,請做我的功課SO ... – Jim