基数排序
1.原理
设10个原数据,以及10个队列如下
以每个数据的个位数字进队:
再从左往右依次出队(注:队列是先进先出原则)
以十位数字进队再依次出队
以百位数字进队再依次出队
原数据有序
2.代码
//链式队列(c语言中得自己写,c++库里有可以直接调用)
typedef struct Node
{
int data;
struct Node*next;
}Node;
typedef struct HNode
{
Node *front;//队头
Node *rear;//队尾
}HNode;
void InitQueue(Queue q)
{
assert(q != NULL);
q->front = NULL;
q->rear = NULL;
}
//判断队列是否为空
bool IsEmpty(Queue q)
{
return q->front == NULL;
}
//入队
bool Push(Queue q,int val)
{
Node *p = (Node*<