日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构源码笔记(C语言):基数排序

發布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构源码笔记(C语言):基数排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//實現基數排序算法#include<stdio.h> #include<malloc.h> #include<string.h>#define MAXE 20 //線性表中最多元素個數 #define MAXR 10 //基數的最大取值 #define MAXD 8 //關鍵字位數的最大值typedef struct node //記錄類型 {char data[MAXD];//記錄的關鍵字定義的字符串struct node *next; //其他數據項,類型為InfoType }RecType;void CreaLink(RecType *&p,char *a[],int n);void DispLink(RecType *p);void RadixSort(RecType *&p,int r,int d)// 實現基數排序:*p為待排序序列鏈表指針,r為基數,d為關鍵字位數 {RecType *head[MAXR],*tail[MAXR],*t;//定義各鏈表的首尾指針int i,j,k;for(i=d-1;i>=0;i--)//從低位到高位循環{for(j=0;j<r;j++)//初始化各鏈隊首、尾指針head[j]=tail[j]=NULL;while(p!=NULL)//對于原鏈表中每個結點循環{k=p->data[i]-'0';//找到第K個鏈隊if(head[k]==NULL)//進行分配{head[k]=p;tail[k]=p;}else{tail[k]->next=p;tail[k]=p;}p=p->next;//取下一個待排序的元素}p=NULL;for(j=0;j<r;j++)//對于每一個鏈隊循環if(head[j]!=NULL)//進行收集{if(p==NULL){p=head[j];t=tail[j];}else {t->next=head[j];t=tail[j];}}t->next=NULL;//最后一個結點的next域置NULLprintf(" 按%d位排序:",d-i-1);DispLink(p);} }void CreaLink(RecType *&p,char *a[],int n)//采用后插法產生鏈表 {int i;RecType *s,*t;for(i=0;i<n;i++){s=(RecType *)malloc(sizeof(RecType));strcpy(s->data,a[i]);if(i==0){p=s;t=s;}else{t->next=s;t=s;}}t->next=NULL; }void DispLink(RecType *p)//輸出鏈表 {while(p!=NULL){printf(" %s",p->data);p=p->next;}printf("\n"); }int main() {int n=8;char * a[]={"75","23","98","44","57","12","29","64","38","82"};RecType *p;CreaLink(p,a,n);printf("\n");printf("初始化關鍵字:");DispLink(p);RadixSort(p,10,2);printf(" 最終結果:");DispLink(p);printf("\n\n");return 0; }

數據結構源碼筆記(C語言描述)匯總:

數據結構源碼筆記(C語言):英文單詞按字典序排序的基數排序

數據結構源碼筆記(C語言):直接插入排序

數據結構源碼筆記(C語言):直接選擇排序

數據結構源碼筆記(C語言):置換-選擇算法

數據結構源碼筆記(C語言):Huffman樹字符編碼

數據結構源碼筆記(C語言):Josephus問題之順序表

數據結構源碼筆記(C語言):Josephus問題之循環鏈接表

數據結構源碼筆記(C語言):多項式合并

數據結構源碼筆記(C語言):二叉樹之葉子結點旋轉銷毀

數據結構源碼筆記(C語言):哈夫曼樹

數據結構源碼筆記(C語言):集合的位向量表示

數據結構源碼筆記(C語言):鏈接隊列

數據結構源碼筆記(C語言):鏈接棧

數據結構源碼筆記(C語言):線性表的單鏈表示

數據結構源碼筆記(C語言):線性表的順序表示

數據結構源碼筆記(C語言):棧的基本操作

數據結構源碼筆記(C語言):中綴表達式

數據結構源碼筆記(C語言):希爾插入排序

數據結構源碼筆記(C語言):索引文件建立和查找

數據結構源碼筆記(C語言):冒泡排序

數據結構源碼筆記(C語言):快速排序

數據結構源碼筆記(C語言):可變長度字符串的快速排序

數據結構源碼筆記(C語言):基數排序

數據結構源碼筆記(C語言):二路歸并排序

數據結構源碼筆記(C語言):堆排序

數據結構源碼筆記(C語言):二叉樹搜索樹Kruskal

數據結構源碼筆記(C語言):二叉搜索樹Prim

數據結構源碼筆記(C語言):最短路徑弗洛伊德算法

數據結構源碼筆記(C語言):深度、廣度優先生成樹

數據結構源碼筆記(C語言):鄰接矩陣轉化鄰接表

數據結構源碼筆記(C語言):統計字符串中出現的字符及其次數

數據結構源碼筆記(C語言):順序查找

數據結構源碼筆記(C語言):哈希表的相關運算算法

數據結構源碼筆記(C語言):分塊法查找

數據結構源碼筆記(C語言):二分查找

數據結構源碼筆記(C語言):二叉樹遍歷

數據結構源碼筆記(C語言):二叉平衡樹的相關操作算法

數據結構源碼筆記(C語言):二叉排序樹的基本操作算法

數據結構源碼筆記(C語言):B樹的相關運算算法

總結

以上是生活随笔為你收集整理的数据结构源码笔记(C语言):基数排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。