关于数据结构查索引算法int Locate的一些疑点。
本帖最后由 jbqiu168 于 2013-03-27 20:49:01 编辑 以下是书本上的原代码int Locate ( IdxListType &idxlist, Hstring wd, Boolean &b){
for ( i = idxlist.last –1; ( m = StrCompare ( idxlist.item[i].key, wd) ) >0 ; --i );
//字典顺序
if ( m==0 ) {
b = TRUE;
return i ;
} //找到
else {
b = FALSE; return i+1;
}
}
如果 ( m = StrCompare ( idxlist.item[i].key, wd) ) >0 ;--i如果这里的m一直大于零那这个i不是会小于0如-1,-1为下标不是越界了吗?是不是旁边要加个条件&&i>=0;--i
[解决办法]
从你给的代码看,你是对的