데이터 구조 - 체인 기수 정렬
1889 단어 데이터 구조
#include
using namespace std;
#define MAX_NUM_OF_KEY 8 //
#define RADIX 10 // ,
#define MAX_SPACE 10000
typedef int DataType ;
typedef struct
{
int data; // , 571
DataType keys[MAX_NUM_OF_KEY]; // ,571 5,7,1
int next;
}SLCell; //
typedef struct Sllist
{
SLCell *R; // ,r[0]
int recnum; //
int keynum; //
}Sllist, * SLList; //
typedef int ArrType[RADIX]; // , , ,
////////////////////////////////////////////////////////////////////////////////
/*
ArrType front[RADIX] ArrType end[RADIX]
| |
f[0] |------>[930] [063]-->[083][184][505] [278]-->[008][109]-->[589]-->[269]>key;
while(key!=0)
{
SLL->R[i].data = key;
for(j = 1; j <= SLL->keynum; j++)
{
SLL->R[i].keys[j] = key % 10;
key /= 10;
}
SLL->R[i-1].next=i++;
cin>>key;
}
SLL->recnum = i-1;
SLL->R[SLL->recnum].next=0;
}
void print(SLList &SLL)
{
for(int p=SLL->R[0].next; p; p=SLL->R[p].next)
{
cout<R[p].data<R=(SLCell *)malloc(MAX_SPACE*sizeof(SLCell));
SLL->recnum=0;
SLL->keynum=3;
creatList(SLL);
cout<keynum; i++) // LSD
{
distribute(SLL->R, i,front,end); // i
collect(SLL->R, i,front,end); // i
cout<