單鏈表的逆序:
由於鍊錶不同於陣列一樣,所以將排好序的結點放到另乙個鍊錶中去,然後再由頭指標指向該鍊錶。
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 級別的有三種,分別為快速排序,堆排序和歸併排序,但是快速排序在單鏈表中沒有優勢 適合於雙向鍊錶 同樣堆排序在建堆和調整堆得過程對於單鏈表也是比較麻煩,這裡我們選取了歸併排序。歸併排序的概念和原理我就不介紹了,網上的相關...