顺序查找中监视哨的作用到底是什么?
严蔚敏第二版书中给了这么一段代码
int Search_Seq(SSTable ST, KeyType=key)
{
ST.R[0].key=key;
for(i=ST.length;ST.R[i].key!=key;--i);
return i;
}
然后这里的for循环如果没有踩中key的话不会抛出数组超出索引界限的异常吗?但是如果把if(i<0)这么一个条件放进循环岂不是跟不设置监视哨又没有区别了?
顺序查找中监视哨的作用到底是什么?
严蔚敏第二版书中给了这么一段代码
int Search_Seq(SSTable ST, KeyType=key)
{
ST.R[0].key=key;
for(i=ST.length;ST.R[i].key!=key;--i);
return i;
}
然后这里的for循环如果没有踩中key的话不会抛出数组超出索引界限的异常吗?但是如果把if(i<0)这么一个条件放进循环岂不是跟不设置监视哨又没有区别了?
收起
就题主代码而论,下面问题
然后这里的for循环如果没有踩中key的话不会抛出数组超出索引界限的异常吗?
答:
ST.R[0].key=key;
这里已经将for循环的终止条件给了,当i=0时,循环退出
对对对,愣是没看出来,非常感谢🫰
报告相同问题?