1、查找的定义
根据某个给定关键字K,从集合R中找出关键字与K相同的记录。查找分为动态查找和静态查找:动态查找,集合中内容是动态变化的;静态查找,集合中内容是固定不变的。本文主要来介绍最基本的静态查找的方法:顺序查找和二分查找。
2、具体的实现
2.1 基本数据结构
/* 定义查找相关数据结构 */
#define TABLE_LENGTH 10
typedef int ElementType;
typedef struct _StaticTable
{
ElementType Element[TABLE_LENGTH + 1];
int Length;
}StaticTable;
2.2 顺序查找
/** 顺序查找
* 输入参数: Tbl 要查找的顺序表,K 要查找的元素
* 返回值: 要查找元素的下标,0失败
*/
int SequentialSearch (StaticTable *Tbl, ElementType K)
{
int i = 0;
Tbl->Element[0] = K;
for (i = Tbl->Length; Tbl->Element[i] != K; i--);
return i;
}