顺序查找
一般线性表的顺序查找
从线性表的一端开始,逐个检查关键字是否满足给定的条件。若查找到某个元素的关键字满足条件,则成功,返回该元素在线性表中的位置,若是已经到了表的另一端,还没有查找到符合给定条件的元素,则返回查找失败的信息。
typedef struct//查找表的数据结构
{
ElemType* elem;//元素存储空间的基址,建表时按实际长度分配,0号单元留空
int TableLen;//表的长度
}SSTable;
int Search_Seq(SSTable ST, ElemType key)
{
//在顺序表ST中顺序查找关键字为key的元素。若找到则返回该元素在表中的位置
ST.elem[0]=key;//哨兵
for(i=ST.TableLen; ST.elem[i]!=key; --i)//从后向前查找
;
return i;//若表中不存在关键字为key的元素,将查找到i为0时退出for循环
}
通过引入哨兵,即可减少判断的语句