所以我有一個單獨的鏈表。新項目被添加到鏈的前端,所以如果你添加了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