【实验题】1.狐狸逮兔子围绕着山顶有10个圆形排列的洞,狐狸要吃兔子,兔子说:“可以,但必须找到我,我就藏身于这十个洞中,你先到1号洞找,第二次隔1个洞(即3号洞)找,第三次隔2个洞(即6号洞)找,以后如此类推,次数不限。”但狐狸从早到晚进进出出了1000次,仍没有找到兔子。问兔子究竟藏在哪个洞里?(提示:这实际上是一个反复查找线性表的过程。)【数据描述】定义一个顺序表,用具有10个元素顺序表来表示这10个洞。每个元素分别表示围着山顶的一个洞,下标为洞的编号。#defineLIST_INIT_SIZE10//线性表存储空间的初始分配量typedefstruct{ElemType*elem;//存储空间基址intlength;//当前长度intlistsize;//当前分配的存储容量(以sizeof(ElemType)为单位)}SqList;【算法描述】statusInitList_Sq(SqList&L){//构造一个线性表LL.elem=(ElemType)malloc(LIST_INIT_SIZE*sizeof(ElemType));If(!L.elem)returnOVERFLOW;//存储分配失败L.length=0;//空表长度为0L.listsize=LIST_INIT_SIZE;//初始存储容量returnOK;}//InitList_SqstatusRabbit(SqList&L){//构造狐狸逮兔子函数intcurrent=0;//定义一个当前洞口号的记数器,初始位置为第一个洞口for(i=0;i#include#defineOK1#defineOVERFLOW-2typedefintstatus;typedefintElemType;#defineLIST_INIT_SIZE10/*线性表存储空间的初始分配量*/typedefstruct{ElemType*elem;/*存储空间基址*/intlength;/*当前长度*/intlistsize;/*当前分配的存储容量(以sizeof(ElemType)为单位)*/}SqList;statusInitList_Sq(SqList*L){/*构造一个线性表L*/(*L).elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!((*L).elem))returnOVERFLOW;/*存储分配失败*/(*L).length=0;/*空表长度为0*/(*L).listsize=LIST_INIT_SIZE;/*初始存储容量*/returnOK;}/*InitList_Sq*/statusRabbit(SqList*L){/*构造狐狸逮兔子函数*/inti,current=0;/*定义一个当前洞口号的记数器,初始位置为第一个洞口*/for(i=0;i