此处监视哨的作用是什末???????

Sunnysnow1 2002-08-22 11:39:17
顺序表按关键字自大至小有序,写一查找算法,将监视哨设在高下标端。

严蔚民书上是在低下标端设置监视哨r[0].key:=K;用Return(i),就可以返回关键字=K的记录。若找不到,就可以返回0,恰巧是监视哨的位置,由此看出了设置监视哨的方便。

但是此处监视哨设在高下标端,要求是什末呢?如找不到是否还返回0呢?以下是一个算法,我没看出来这里监视哨起什末作用 只是没找到,就返回ERROR,找到就返回记录的位置。请问对吗?

int Search_Sq(SSTable ST,int key)//在有序表上顺序查找的算法,监视哨设在高下标端
{
ST.elem[ST.length+1].key=key;
for(i=1;ST.elem[i].key>key;i++);
if(i>ST.length||ST.elem[i].key<key) return ERROR;
return i;
}//Search_Sq



...全文
209 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gauss 2002-08-23
  • 打赏
  • 举报
回复
假设不加

如果key是一个很少的数,小于ST中所有元素,
for(i=1;ST.elem[i].key>key;i++);
这里i就一直走下去啦.什么时候停止,得到什么就很难说啦....

加上的话就规定了i最多在ST.length+1时停止.
Sunnysnow1 2002-08-23
  • 打赏
  • 举报
回复
对啊,我是太SILLY啦:)

33,025

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧