/*
该算法是按表元键值的各位值进行排序
各个表的元值是随机生成的
作者:邓飞跃
日期:2011.04.22
环境:VS2005
*/
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define NUM 10
struct LinkNode
{
int Num;
struct LinkNode *Next;
};
void main(){
int i,j;
int random;
int array[10][10];
struct LinkNode Node;
struct LinkNode *head,*head1;//指向头结点的指针
struct LinkNode *p,*q;
// struct LinkNode *array[10]; 结构体类型的数组指针 ,没写好
/* 生成一个动态链表*/
p=( struct LinkNode *)malloc(sizeof(struct LinkNode));
head=p;
srand( (unsigned)time( NULL ) ); //用时间作为种子初始化随机数
printf("产生的十个随机数为:");
for(i=0;i<10;++i){
random=rand()%1000; //产生出10个随机数
p->Num=random;
printf(" %4d",p->Num);
q=( struct LinkNode *)malloc(sizeof(struct LinkNode));
p->Next=q;
p=q;
}
printf("\n");
printf("******************************************************************\n");
/*生成一个动态链表*/
//head=Build_Link (NUM);
head1=head;//指针head始终指向头结点,用来标记
for(i=0;i<10;++i){ //按照个位拆分链表
for(j=0;j<10;++j){
if (head1->Num % 10 == i)
{
array[i][j]=head1->Num;//给数组赋值
}
else
array[i][j] = NULL;//当第i行第j列没有数值时,赋值为空
head1=head1->Next;//指针遍历下一个节点