线性表的查找:
在线性表上进行查找的方法分别有顺序查找,二分查找和分快查找.
查找于数据的存储结构有关,线性表有顺序和链式两种存储结构.
先定义北查找的顺序表类型定义如下:
#define MAXL <表中最多记录个数>
typedef struct
{
KeyType key; /*KeyType为关键字的数据类型*/
InfoType data; /*其他数据*/
}NodeType;
typedef NodeType SeqList [MAXL]; /*顺序表类型*/
(一)顺序查找
基本思路:从表的一端开始,顺序扫描线形表,依次将扫描到的关键字和给定值k相比较,若当前扫描到的关键字等于k的记录,则查找失败.
其算法如下(在顺序表R[0...n-1]中查找关键字为k的记录,成功返回找到的记录位置,失败时返回-1):
int SeqSearch(SeqList R,int n,KeyType k)
{
int i=0;
while(i<n&&R[i].key!=k) i++;
if(i>=n)
return -1;
else
return 1;
}
: