顺序查找

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




posted @ 2015-08-22 18:37  Lucas_1993  阅读(152)  评论(0编辑  收藏  举报