基數排序單鏈表實現 C語言

2021-06-29 14:15:20 字數 1352 閱讀 8673

標頭檔案:

/*基數排序,單鏈表實現*/

#ifndef radix_sort_h

#define radix_sort_h

#include #define flowover -1

#define list_empty -2

struct radixsort;

typedef struct radixsort * list;

typedef struct radixsort * node;

typedef int element;

struct radixsort

;list createlist(void);//建立空表,返回表頭位址

bool islast(node n);//檢測輸入節點是否為表尾,是返回true

bool isempty(list l);//檢測輸入表是否為空,是返回true

list destroylist(list l);//刪除表並釋放記憶體

void addnode(list l, element e);//在表尾加入資料域為e的節點

void movenode(list l1, list l2);//將表l2中的頭節點移動成為l1的尾節點

void printlist(list l);//從第乙個節點開始輸出表中資料

#endif

實現檔案:

#include #include #include #include "radix_sort.h"

list createlist(void)

bool islast(node n)

bool isempty(list l)

list destroylist(list l)

return null;//防止表頭l成為野指標

} void addnode(list l, element e)

void movenode(list l1, list l2)

void printlist(list l)

printf("\n");

}

測試檔案:

#include #include #include "radix_sort.h"

int main()

for(i = 0; i < 3; i++)

for(j = 0; j < 10; j++)

printf("經過第%d輪排序,單桶中資料序列為:", i + 1);

printlist(sortlist); }

return 0;

}

單鏈表實現基數排序

1 2 單鏈表實現基數排序3 45 介面標頭檔案 6 typedef int elementtype 78 ifndef list h 9 define list h 10 include 11 12struct node 13 typedef struct node ptrtonode 14typ...

單鏈表實現基數排序

基數排序是通過 分配 和 收集 過程來實現排序 1 假設有欲排資料序列如下所示 73 22 93 43 55 14 28 65 39 81 首先根據個位數的數值,在遍歷資料時將它們各自分配到編號0至9的桶 個位數值與桶號一一對應 中。分配結果 邏輯想象 如下圖所示 分配結束後。接下來將所有桶中所盛資...

c 實現基數排序

以下介紹內容 百科 基數排序的方式可以採用lsd least significant digital 或msd most significant digital lsd的排序方式由鍵值的最右邊開始,而msd則相反,由鍵值的最左邊開始。以lsd為例,假設原來有一串數值如下所示 73,22,93,43,...