【实验题】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(
elem)returnOVERFLOW;//存储分配失败L
length=0;//空表长度为0L
listsize=LIST_INIT_SIZE;//初始存储容量returnOK;}//InitList_SqstatusRabbit(SqList&L){//构造狐狸逮兔子函数intcurrent=0;//定义一个当前洞口号的记数器,初始位置为第一个洞口for(i=0;i