求这段代码的单链表形式

围绕着山顶有10个圆形排列的洞,狐狸要吃兔子,兔子说:“可以,但必须找到我,我就藏身于这十个洞中,你先到1号洞找,第二次隔1个洞(即3号洞)找,第三次隔2个洞(即6号洞)找,以后如此类推,次数不限。”但狐狸从早到晚进进出出了1000次,仍没有找到兔子。问兔子究竟藏在哪个洞里?
#include "stdio.h"

#include "stdlib.h"

#define OK 1

#define OVERFLOW -2

typedef int status;

typedef int ElemType;

#define LIST_INIT_SIZE 10

typedef struct {

   ElemType *elem;                

   int length;                           

   int listsize;                        

}SqList;

status InitList_Sq(SqList *L){

   (*L).elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));

   if(!((*L).elem))   return OVERFLOW;    

   (*L).length=0;                                                

   (*L).listsize=LIST_INIT_SIZE;          

   return OK;

} //InitList_Sq

status Rabbit(SqList *L){

   int i,current=0;             

   for(i=0;i<LIST_INIT_SIZE;i++)

          (*L).elem[i]=1;            

   (*L).elem[LIST_INIT_SIZE-1]=0;

   (*L).elem[0]=0;                  

   for(i=2;i<=1000;i++){

          current=(current+i)%LIST_INIT_SIZE;            

          (*L).elem[current]=0;                                      

   }

printf("\n兔子可能藏在如下的洞中:") ;

for(i=0;i<LIST_INIT_SIZE;i++)

          if((*L).elem[i]==1)

                 printf("  \n此洞是第%d号洞 !",i+1);            

          return OK;

}

void main(){

   SqList *L=( SqList *)malloc(sizeof(SqList));

   InitList_Sq(L);

   Rabbit(L);

}