首页 > 代码库 > 基数排序之多keyword排序运用队列
基数排序之多keyword排序运用队列
源码例如以下: #include <stdlib.h> #include <stdio.h> typedef struct QUEUEnode* link; struct QUEUEnode{ int item ; link next; link head , tail; }; link NEW(int item, link next){ link x = (link) malloc(sizeof *x); x->item = item; x->next = next; return x; } void QUEUEinit(link queue, int maxN){ queue->head = NULL; } int QUEUEempty(link queue){ return queue->head == NULL; } void QUEUEput(link queue,int item){ if(queue->head == NULL){ queue->head =(queue->tail = NEW(item,queue->head)) ; return; } queue->tail->next = NEW(item,queue->tail->next); queue->tail = queue->tail->next; } int QUEUEget(link queue){ int item = queue->head->item; link t = queue->head->next; free(queue->head); queue->head = t; return item; }
//以上是QUEUE的ADT
//求整数k的第p位 int radix(int k, int p){ int i,power = 1 ; for(i=1;i<=p-1;i++) power*=10; return (k%(power*10))/power; } void p(link A){ while(!QUEUEempty(A)) printf("%d ",QUEUEget(A)); } void radixSort(int figure, link A){ //figure:待排序的数据最大位数 此方法仅仅适合数字排序 link Q[10]; int data, pass, i , r; for(pass=1;pass<=figure;pass++){ for(i=0;i<=9;i++){ Q[i] = (link)malloc(sizeof *(Q[i])); QUEUEinit(Q[i],40); //置空队列 } while(!QUEUEempty(A)){ data = http://www.mamicode.com/QUEUEget(A);>
基数排序之多keyword排序运用队列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。