2015-10-12 44 views
-2

我有一個結構類型的節點:排序鏈表到位

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

我使用這個節點結構的鏈接列表。我可以排序使用另一個鏈接列表和複製節點值有這個鏈表,但我想實現在鏈表selection sort。我已經經歷了一些問題和文章,但是我不清楚這是否可能。我是否需要一個索引來實現選擇排序?如果可能的話,我該如何繼續?

+1

'什麼建議嗎?'是啊,寫一些排序代碼。認真。你的問題是什麼?你只是想讓別人給你代碼? – John3136

+0

LMAO,請做我的功課SO ... – Jim

回答

1

選擇排序是爲數組,向量的事情,有隨機訪問迭代器和類似next指針沒有鏈接(鏈接交換元素時創建的開銷)。對於一個簡單的列表排序,從一個空列表開始,它將成爲排序列表,比如說這是struct node * sorted = NULL; 。從原始列表中逐個刪除一個節點,並按排序順序將它們插入排序列表(以空列表開頭)。

寫一些代碼,並與您到目前爲止已經試過什麼更新你的答案。

+0

,所以我不能執行選擇排序在鏈表? –

+1

@avijitbhattacharjee - 用列表選擇排序有點複雜。首先將掃描指針設置爲從列表的第一個節點開始。瀏覽列表的「最小」的節點,然後交換節點與列表(如果不同)的第一個節點,然後提前掃描指針到第二個節點,並重復,直到你去通過列表。要交換節點,交換指向這兩個節點的指針,然後交換這兩個節點的下一個指針(按該順序)。 – rcgldr