單鏈表的排序

2022-09-03 03:51:07 字數 1424 閱讀 7265

單鏈表的逆序:

由於鍊錶不同於陣列一樣,所以將排好序的結點放到另乙個鍊錶中去,然後再由頭指標指向該鍊錶。

1

void link::sort(node *head)

17 } //

獲得最小結點

18//

將最小結點插入到 root中去,但是需要判斷最小值是不是頭結點,如果是就不必鏈結到root

19//

因為最後面會將root中的鍊錶又重新鏈結到head中去

20if (root ==null)

25else

3031

if (min ==head)

35else

39 } //

獲得有序鍊錶 root,root中的結點都來自於head中

40if (root !=null)

44 head = root; //

將root中排序好的結點鏈結到head上去

45 }

逆序

1 #include 2

using

namespace

std;34

struct

node ;89

class

link ;

2021

intmain()

3334

void link::sort(node *head)

50 } //

獲得最小結點

51//

將最小結點插入到 root中去,但是需要判斷最小值是不是頭結點,如果是就不必鏈結到root

52//

因為最後面會將root中的鍊錶又重新鏈結到head中去

53if (root ==null)

58else

6364

if (min ==head)

68else

72 } //

獲得有序鍊錶 root,root中的結點都來自於head中

73if (root !=null)

77 head = root; //

將root中排序好的結點鏈結到head上去78}

7980

link::link()

85 link::~link() 92}

9394

void

link::create()

108 p->next =null;

109110

}111

112void

link::output()

118 cout <

119}

120 node *link::gethead()

較為完整的程式

單鏈表之排序單鏈表

package list public class sortedsinglylist extends singlylist 將values陣列中的所有物件按值大小插入 public sortedsinglylist t values 過載深拷貝,由單鏈表構建排序單鏈表 public sortedsi...

單鏈表的排序

這是前幾天hottey面試的乙個題目 不借助外部陣列,只對鍊錶本身進行操作來完成排序。我覺得甚有意思,便實現了乙個。程式 如下 include using namespace std template struct node 節點結構 template class slist 單鏈表結構 slist...

單鏈表的排序

歸併排序的一種比較快的排序,尤其在鍊錶中,在所有排序中是時間複雜度為nlog n 級別的有三種,分別為快速排序,堆排序和歸併排序,但是快速排序在單鏈表中沒有優勢 適合於雙向鍊錶 同樣堆排序在建堆和調整堆得過程對於單鏈表也是比較麻煩,這裡我們選取了歸併排序。歸併排序的概念和原理我就不介紹了,網上的相關...